c#
nineleafclover
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WPF数据绑定界面后序列化报错
在数据继承并实现了INotifyPropertyChanged接口情况下,数据绑定到界面后,再对数据进行序列化,会报错。 解决方法如下: [field:NonSerialized] public event PropertyChangedEventHandler PropertyChanged;原创 2021-06-22 11:32:48 · 320 阅读 · 0 评论 -
C# 通过服务下载文件,服务启动失败
先上代码 protected string DownLoadFile(string url, string path) { HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest; //System.Net.WebProxy proxy = new WebProxy("192.168.110.5", 808); //req.Proxy原创 2021-03-26 16:31:23 · 329 阅读 · 0 评论 -
西门子S7通讯 Write 阻塞不返回
在使用Github上开源的S7.net 跟西门子PLC通讯时遇到了一个问题。在逐步调试时发现每次走到异步发送的地方之后,便阻塞在那里。经过几天的测试,原来是因为多线程同时对同一个PLC对象操作。造成的错误。解决方法:单独创建一个线程及消息队列,然后将需要发送的数据放入队列中。PLC连接对象只由新创建的线程调用,线程循环检测队列中的个数,如果有数据需要发送,则调用PLC对象发送。...原创 2018-12-22 17:30:31 · 2462 阅读 · 1 评论 -
C#中的委托跟事件
1.委托。using System;delegate int DelegateEventHandler(int i);namespace DelegateTest{ Class A { public static int Fun(int i) { return i*i*i; } } class Test原创 2017-09-19 19:27:37 · 487 阅读 · 0 评论 -
C#如何让界面或者控件响应键盘上的按键
在VS中的界面的属性中有KeyPreview这一属性(控件没找到这一个属性,应该是没有),需要将它的值设为true。 在控件或者界面的事件中找到KeyUp,KeyDown,KeyPress等事件,双击生成框架代码, private void FrmVideoC_KeyDown(object sender, KeyEventArgs e) { if (e原创 2017-09-11 19:56:03 · 3116 阅读 · 0 评论 -
C#中线程所处的状态
判断线程是否运行的方法:thread.ThreadState == ThreadState.Running有时候会出现多个命名空间中同时含有ThreadState建议使用下面方法;printThread.ThreadState == System.Threading.ThreadState.Running线程的状态列表原创 2017-09-01 11:40:23 · 1425 阅读 · 0 评论 -
C#中@标识符的使用
1.取消转义字符的作用。 例:string Name = "C:\\name\\name";//等同于下面string Name = @"C:\Name\name"2.允许字符串跨行。 例:string str = "hello"++"world"+"byebye";//等同于下面string str = @"helloworldbyebye";3.屏蔽关键字的作用。int @i原创 2017-09-25 19:26:49 · 840 阅读 · 0 评论 -
C#中static的作用
static可修饰类、字段、属性、方法。 static在使用的时候分三种方法。 1.修饰类的时候: 将类修饰为静态的,意味着这个类不能实例化对象,在调用类里面的任何内容的时候直接用类名加点的形式调用其中的方法或者字段(类名.方法/类名.字段) 2.修饰方法或者属性的时候: 将方法修饰为静态方法,表示此方法为所在的类所有,而不是这个类实例化的对象所拥有,这个方法在调用的时候需原创 2017-09-13 13:26:53 · 9318 阅读 · 0 评论 -
c#获取本机的串口列表
1.定义一个字符串数组,并将获取到的电脑上串口名字赋值给它。 string[] ArryPort = SerialPort.GetPortNames(); 2.将一个组合框的内容清除 cmbPort.Items.Clear(); 3。将数组中的值添加到组合框中 for (int i = 0; i < ArryPort.Length; i++) {原创 2017-08-15 16:43:43 · 13223 阅读 · 3 评论 -
c#中数组 list Arraylist
数组:int [] a = new int[3];优点:存放相同类型的数据,数组在内存中是连续存储的,所以它的索引速度是非 常的快,而且赋值与修改元素也很简单。 缺点:在数组的两个数据间插入数据很麻烦,还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。list :List<int> list = new原创 2017-08-10 12:00:45 · 431 阅读 · 0 评论 -
C# Show()跟ShowDialog()
ShowDialog() 弹出模式化的窗体Show() 弹出非模式化的窗体模式窗体,在关闭或隐藏前无法切换到主窗体。非模式窗体,变换焦点使不必关闭窗体用ShowDialog显示窗体时,子窗体会终止主窗体的程序,等到子窗体关闭或者隐藏,主窗体程序继续运行。 ShowDialog在关闭时只是隐藏并不是解构,在重复调用的时候会节省资源,但是需要小心‘上辈子影响这辈子’的事原创 2017-08-03 11:19:29 · 865 阅读 · 0 评论 -
C#中ShowDialog() == DialogResult.OK
if (addf.ShowDialog() == DialogResult.OK) { }1.执行addf.ShowDialog(),addf 窗体作为模式窗体打开, 2.当addf 窗体打开后,在此窗体上进行操作,对Dialogresult的值更改或者不变。 3.关闭addf 窗体时,执行if里的对比。判断DialogResu原创 2017-08-16 09:52:59 · 14780 阅读 · 2 评论 -
c#中的out跟ref
out只出不进, ref有出有进。在使用out传参的时候,传进去的参数为空,需要初始化,在函数处理完毕之后将数据传给指定的变量。在使用ref传参的时候,传进去的值为变量本身的值,不需要初始化,函数直接调用变量的值。函数结束之后,将变量的值传出。原创 2017-08-07 17:18:54 · 224 阅读 · 0 评论
分享