1.默认情况下,赋值运算符右侧的实数被视为 double; 但是,如果希望整数被视为 double,后缀加d 或 D,运算时保留double精度。
2.Application.DoEvents()方法用于响应系统其它事件,在耗时循环等可使用,防止假死现象。
3.C#内timer计时器最小周期50ms。
4.引用传递需考虑对象被释放、覆盖等,可用Clone()方法,克隆分浅克隆和深克隆。
5.动态数组ArrayList
不保证会对 ArrayList 排序。在执行需要对 ArrayList 排序的操作(如 BinarySearch)之前,必须对 ArrayList 进行排序。
ArrayList 的容量是 ArrayList 可以保存的元素数。ArrayList 的默认初始容量为 0。随着元素添加到 ArrayList 中,容量会根据需要通过重新分配自动增加。可通过调用 TrimToSize 或通过显式设置 Capacity 属性减少容量。
使用整数索引可以访问此集合中的元素。此集合中的索引从零开始。
ArrayList 接受 空引用(在 Visual Basic 中为 Nothing) 作为有效值并且允许重复的元素。
6.格式化数据至16进制字符串data.ToString("X")
格式化字符串长度str.PadLeft(长度,补偿字符)
字符串转换至二进制byte
byte[] bytes = new byte[str.Length / 2];
for (int i = 0; i < str.Length; i += 2)
bytes[i / 2] = (byte)Convert.ToByte(str.Substring(i, 2), 16);
6.事件传递方法
public event HMouseEventHandler HMouseDown
{
add { mCtrl_HalconWindowCtrl.HMouseDown += value; }
remove { mCtrl_HalconWindowCtrl.HMouseDown -= value; }
}
7.const与readonly,将变量声明为只读,const声明静态只读变量(静态只能声明简单数据类型整型、浮点、布尔、字符串),readonly为声明动态类型变量可为对象类型(如DataTime类型)。
8.一维数组至IntPtr转换
IntPtr p=new IntPtr();
//byte[] b
unsafe
{
fixed(byte* pointer=b)
{
p=new IntPtr(pointer);
}
}
9.fixed 语句禁止垃圾回收器重定位可移动的变量,并固定变量地址防止地址变动。 fixed 语句只在不安全的上下文中是允许的。 Fixed 还可用于创建固定大小缓冲区。C# 编译器只允许在 fixed 语句中分配指向托管变量的指针。
10.ref:可传参进入方法,因此在方法外需要初始化
out:仅返回此参数的方法运行结果
11.interface:定义的方法、属性(不能包含字段)继承类必须重写,可多重继承
vitrual:定义的方法、属性、字段继承类可重写或不重写,不能多重继承