C#
文章平均质量分 58
C#学习记录
xiaowu080
google:wubingbing080
展开
-
C# 使MessageBox.Show弹出框保持最前
【代码】C# 使MessageBox.Show弹出框保持最前。原创 2024-04-28 15:24:23 · 729 阅读 · 0 评论 -
C# log4net- 使用教程
用户可以从http://logging.apache.org/log4net/下载log4net的源代码。解压软件包后,在解压的src目录下将log4net.sln载入Visual Studio .NET,编译后可以得到log4net.dll。右击项目新建一个config类型文件,取名为log4net (log4net 的配置信息单独的写在一个config文件里比较好管理,与其他代码分离清楚)Log4net就是为这样一个目的设计的,用于.NET开发环境的日志记录包。3. Log4net的结构。原创 2024-05-17 11:46:07 · 550 阅读 · 0 评论 -
C#定时执行一次任务
项目中有个需求缓存垃圾清理,不想用timer一直刷新读取判断是否执行,我想要在每天定时执行一次任务。原创 2024-03-13 15:47:07 · 926 阅读 · 1 评论 -
C#实现调试软件通过网线连接修改控制器的IP设定
思路:双方定义一个共同的通信端口,调试软件定义为发送端,通过广播的方式发送指令,看门狗定义为接收端,接收发送端发来的命令,为保证数据的完整性我们需要定义一下报文格式,我使用的是CRC16_IBM效验。调试软件与看门狗软件通过UDP通信实现互相身份识别验证,解析指令执行修改本地IP信息,修改完成后双方地址信息都知道了,这样就可以建立TCP通信了。项目要求:实现看门狗软件与外部调试软件在不知道对方信息的状态下建立可靠的通信。CRC效验静态库方法(nuget安装包,搜索“原创 2024-03-25 15:01:06 · 409 阅读 · 0 评论 -
C#虚方法的使用场景
通过使用虚方法,您可以在派生类中重写基类中定义的方法,从而实现不同对象在相同方法调用时表现出不同的行为。您可以在基类中定义一个虚方法来处理控件的绘制逻辑,然后在每个具体的控件派生类中重写该方法以适应特定的绘制需求。您可以创建一个基类来处理数据库连接和一般的数据访问逻辑,然后在具体的数据访问对象派生类中重写虚方法以执行特定的数据库操作。您可以使用虚方法来定义基类中的角色动作,然后在具体的角色类中重写这些方法以实现特定的动作。通过虚方法,您可以实现基类的通用功能,并通过派生类的重写来定制特定类型的行为。原创 2024-04-26 17:31:54 · 529 阅读 · 3 评论 -
C#泛型委托理解(Deleagte与Action、Func用法)
关键字到匿名委托方法,再到Action和Func,Action是无返回值的委托,Func是有返回值的委托,现在基本上都是基于Action和Func来写委托的,有些和业务逻辑连接起来写匿名委托方法。Func(有返回值)------T1和T2为0-16个参数类型,T3为返回值类型。其实C#已经帮我们封装好了泛型委托,无返回值泛型委托Action,有返回值泛型委托Func。Func(有返回值)------T1为0-16个参数类型,T2为返回值类型。//声明泛型委托,有返回值从。原创 2024-03-11 17:25:31 · 944 阅读 · 1 评论 -
C# 单例模式及其应用
这样可以确保只有一个缓存管理器实例被创建,所有的数据都可以通过该实例进行缓存和访问,避免了多个缓存实例导致的数据冗余和一致性问题。使用单例模式可以确保只有一个日志记录器实例存在,所有的模块都可以通过该实例将日志信息写入到同一个日志文件中,避免了多个日志实例导致的日志信息分散和不一致的问题。:在应用程序中,可能会有大量的任务需要并发执行,为了提高性能和资源利用率,可以使用单例模式来实现线程池。这样可以确保只有一个线程池实例被创建,所有的任务都可以提交到该实例中进行并发执行,避免了频繁创建和销毁线程的开销。原创 2024-04-28 17:13:31 · 995 阅读 · 2 评论 -
C#修改电脑IP信息帮助类
【代码】修改电脑IP信息帮助类。原创 2024-04-25 14:06:21 · 614 阅读 · 1 评论 -
C# 字节数组(byte[])拼接的性能对比测试
【代码】C# 字节数组(byte[])拼接的性能对比测试。原创 2024-05-27 09:06:44 · 362 阅读 · 0 评论 -
c#闭包问题
而在第二个正确的例子里,在每一次循环中,会创建一个新的临时变量u来保存当前循环的i,当委托或Lambda创建时,闭包这个新的临时变量u,且每个不同委托引用的u是互相独立的,其到委托执行时都是不会变化的,所以使用临时变量来保存匿名函数想要引用的外部函数变量可以解决闭包陷阱。“foreach”的遍历中定义的临时循环变量会被逻辑上限制在循环内,“foreach”的每次循环都会是循环变量的一个拷贝,这样闭包就看起来关闭了(没有了)。在c#中,内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止。原创 2024-03-12 13:08:31 · 1058 阅读 · 1 评论 -
C# WinForm多线程修改控件,在窗体未创建或关闭时报错
百度之后,发现需要判断控件的IsHandleCreated和IsDisposed等属性,并且如果还有错误,可以再捕获InvalidOperationException异常,避免程序崩溃,每次涉及到UI变动的地方都这么判断的话,则太麻烦。WinForm多线程修改控件时,提示在“创建窗口句柄之前,不能在控件上调用 Invoke 或 BeginInvoke”报错信息,并且如果没有捕获到,则可能导致程序崩溃,直接关闭。原创 2024-03-27 09:24:00 · 261 阅读 · 0 评论 -
C#程序以管理员权限运行
【代码】C#程序以管理员权限运行。原创 2024-03-07 11:03:55 · 824 阅读 · 1 评论 -
C# lambda表达式及匿名方法
Console.WriteLine("通过委托调用方法:a+b={0}", a + b);Console.WriteLine($"通过匿名方法:a+b={a + b}");//匿名方法概念:这个方法没有具体名称,只有委托关键字,方法参数,方法体,所以称为匿名方法。匿名方法概念:这个方法没有具体名称,只有委托关键字,方法参数,方法体,所以称为匿名方法。//通过Lambda表达式,Lambda表达式就是将匿名方法进一步封装,Lambda表达式:就是将匿名方法进一步封装,基本定义规范:(参数)=>{方法体}原创 2024-03-05 14:09:54 · 365 阅读 · 0 评论 -
C# Nuget上一个轻量级TCP\IP通讯库(SimpleTCP)
工作中经常遇到需要实现TCP客户端或服务端的时候,如果每次都自己写会很麻烦且无聊,使用SuperSocket库又太大了。这时候就可以使用。原创 2024-03-06 12:58:59 · 1434 阅读 · 0 评论 -
C#后台无窗体程序实现
由于项目要求做一个C#窗体隐藏后台计算程序并唯一,找到两种方法实现后台应用程序,下面讲讲怎么实现。原创 2024-03-11 10:28:09 · 499 阅读 · 1 评论 -
C# UDP实现远程主机与本地主机两台设备间广播通信
在使用TCP/IP 协议的网络中,主机号为全1的IP地址为广播地址。两者的区别就是,本地广播在不知道目标主机的网络地址下,如果目标主机是在本地网络,可以发送本地广播,本地网络下的所有主机都能接收广播。直接广播是目标主机的网络地址知道,那该网络地址网段下的所有主机都能收到广播,直接广播更精确范围更小些。地址就是255.255.255.255,它不经路由转发,发送本地网络下的所有主机,只能在局域网内转发,主要是不用知道目标主机的掩码与网络地址,本地转发同本地网络下的所有主机。掩码最后为0的位为主机位。原创 2024-03-11 10:15:24 · 1103 阅读 · 1 评论