![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#
文章平均质量分 52
C#语言相关内容学习
武尚发的博客
机器视觉狗
展开
-
分享一个轻量化的TCP\IP通讯库(Simple TCP)
简单又好用的TCP\IP通讯库--->Simple TCP原创 2022-09-29 19:25:06 · 2856 阅读 · 4 评论 -
Async和Await异步函数的示例分享
Async异步是C#5.0时代引入的本文主要分享,有返回值和无返回值的async异步函数的编写方式,以及await的使用。1. 同步调用这里模拟了两个耗时任务AsyncMethod1和AsyncMethod2,每个任务耗时5秒钟。 public static void AsyncMethod1() { Thread.Sleep(5000); Console.WriteLine("This is method 1" + "\t" +原创 2021-01-09 00:30:13 · 407 阅读 · 1 评论 -
C#中针对NModbus4库文件的简单使用分享(Modbus Tcp协议)
1. Modbus Tcp协议:ModBus Tcp是基于TCP/IP的报文协议,采用主\从方式通信,但是主从之间的端口是固定的:502ModBus地址:由5位数字组成(PS:40001-49999表示HoldingRegister),包括起始数据类型代号,以及后面的偏移地址2. 实验目的:实现主机\从机对任意线圈和寄存器的写入和读取。这里用到的Dll名称是:NModbus4。 可以在NuGet或者GetHub上下载到。3. 主机端:Slave上代码:// Modbus TCPu原创 2020-12-25 00:53:52 · 30981 阅读 · 39 评论 -
C#中通过Socket实现一个简单的TCP\IP服务器和客户端的搭建
TCP\IP 是什么?TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计的。Socket 是什么?Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。1.原创 2020-11-15 17:38:35 · 4610 阅读 · 5 评论 -
C#中使用反射获取对象成员&动态创建对象
这里分享两种使用反射的用途:① 在未知一个类成员的时候,通过反射得到该类的成员。② 动态创建一个对象。1. 通过反射获取类成员、赋值:首先自定义一个类,假设我们不知道这个类中的成员有哪些 public class Person { public string Name { get; set; } public void SayHi(string name) { Console.WriteLine("Hi! I am {原创 2020-10-19 00:37:13 · 4577 阅读 · 1 评论 -
C#中通过事件的方式实现窗体之间双向传递数据
需求:有Form1和Form2两个窗体,在打开Form1的时候打开Form2,然后实现两个窗体之间相互传递值,并打印到各自的Label中。Form1中代码实现: public partial class Form1 : Form { public delegate void OnDataArrivedHandler(string data); public event OnDataArrivedHandler DataArrived; pub原创 2020-09-06 23:06:44 · 693 阅读 · 0 评论 -
使用C#对SqlServer数据库登录并执行增删改查操作简单实例
ADO.NET:是微软最强大的数据库访问技术,应用程序可以通过ADO.NET可以非常方便的访问并处理存储在各种数据库的中的数据。ADO.NET集成于.NetFrameWork之中,可用于任何支持.Net的程序设计语言。命名空间:System.Data.SqlClient;1. 创建一个数据库:VS中选择:视图——服务器资源管理器右击“数据连接”,选择“创建新的SqlServer数据库”,然后选择服务器名,并在下面创建一个名称为“MySchool”的数据库。新建数据表:拆开刚刚新建的原创 2020-08-23 17:56:25 · 2839 阅读 · 0 评论 -
C#中三种定时器Timer的使用方法
在.NET Framework里面提供了三种Timer:① System.Windows.Forms.Timer(运行在主线程上,通过Tick事件触发)② System.Timers.Timer(可以多线程,也可以单线程,通过Elapsed事件触发)③ System.Threading.TimerSystem.Windows.Forms.Timer:基于窗体程序,直接拖拽到窗体上。属性:Interval:间隔触发的时间。Enabled:true表示启用,false表示禁止 priv原创 2020-08-10 00:23:10 · 44106 阅读 · 2 评论 -
C#中使用DllImport特性和引用Using调用外部DLL的区别
1. 区别:在程序中,有的时候需要去调用一些外部的商业算法,往往这类算法都是收费的算法库,说白了就是不让你看到内部是如何实现的,只开放一些方法,然后你调用这个方法之后,传入参数就能得到结果。通常这种算法库,都会被封装成库,而作为一个调用者,我们应该如何去使用这些库文件呢? 以下针对这部分做介绍:主要分两种调用方式:针对托管代码 (针对.Net平台开发的,如:C#.Net、VB.Net)需要添加引用,然后引入命名空间using的方式调用。using System.Text;using Syst原创 2020-07-20 20:04:36 · 3794 阅读 · 0 评论 -
C#中Linq的使用以及扩展方式
Linq:Language-Integrated Query【语言集成查询】Linq的好处在于,使用语句筛选的时候并不会立刻将结果取出来(占用内存资源),而是使用的时候才能提取。命名空间:System.Linq;由于Linq实现了IEnumerable接口,所以 .NetFrameWork框架下的所有集合对象都可以使用Linq进行操作。1. 查询:Where//准备一个被操作的数组int[] tmp= { 11, 18, 19, 30, 25, 34, 59, 77, 26, 31, 94 };原创 2020-07-12 21:10:27 · 833 阅读 · 1 评论 -
C#中委托和泛型委托和多播委托的简单示例
1. 委托首先,委托也是一种引用类型,主要用于对方法做封装。举个栗子,这个世界上本来只有中国、美国、韩国。他们都具有向别人【问好】的能力。中国人:你好!美国人:Hello!韩国人:aniasaiyou!他们用各自的语言向对方问好,听的久了也没什么。但是,有一天发生了战争,他们被分裂成了很多的小国家:中国人:你好!美国人:Hello!韩国人:aniasaiyou!德国人:#@¥…………&法国人:(()(&……&……日本人:…………&**&))*原创 2020-07-11 00:45:12 · 365 阅读 · 0 评论 -
C#中的自定义事件和EventHandler的使用
自定义事件:这里主要模拟刷银行卡,手机提示刷卡信息的过程。声明一个委托类型public delegate void DelMethod(string bankName,decimal deposit,decimal amount); //委托与类平级创建一个银行卡类,刷卡的时候会触发通知事件 public class BankCard { public string BankName { set; get; } public decimal B原创 2020-06-04 00:27:51 · 3589 阅读 · 0 评论 -
C#使用NPOI导出Excel类封装
** NPOI是指构建在POI 3.x版本之上的一个程序,NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。**以下代码主要分3部分:通过实体类的自定义特性导出Excel文件封装类:ExcelHelper实体类:StudentModel调用:Form1ExcelHelper /// <summary> /// Excel操作类 /// </su原创 2020-05-20 00:13:42 · 937 阅读 · 0 评论 -
ref和out关键字的使用
作用:在一个方法中,通常传入的参数,是原值的Copy的副本。当这个方法执行完毕之后,这个副本就会被销毁,原值不受影响。但是有的时候,我们需要改变这个变量的原值,就需要向方法传递这个变量的引用。我们知道值类型修改原值的副本,但是指向引用类型时修改的就是原值。这个时候我们需要使用ref和out这两个关键字。ref和out的区别:ref: 通过ref传递到方法的参数必须先初始化(赋值);out:通过out传递到方法的参数可以不必赋值;共同点:在一定程度上解决了一个函数只能有一个返回值的问题。ref代原创 2020-05-11 00:04:36 · 381 阅读 · 0 评论 -
C#之特性Attribute学习(系统特性/自定义特性)
特性提供了功能强大的方法:用于将元数据或声明信息与代码(程序集、类型、方法、属性等)相关联。特性与程序实体关联后,即可在运行时使用“反射”的技术查询特性。【系统特性】序列化XML的[XMLSerializer]序列化二进制[Serializable]条件特性[Conditional(“DEBUG”)]标记过时[Obsolete(“该类已经过时”,true)]在下面这段代码中,条件特性...原创 2020-05-07 11:34:53 · 527 阅读 · 0 评论 -
C#中BeginInvoke()和EndInvoke()异步方法的使用分享
对【异步回调】的疑问点?异步分为以下大概4个步骤:①声明一个委托类型②创建委托类型的变量③为委托绑定一个方法(返回值和参数列表与委托相同)④异步调用委托 //【1】声明一个委托 public delegate int MyCalculator(int num,int ms); public partial class Form1 : Form { ...原创 2020-05-05 15:16:27 · 3722 阅读 · 0 评论