1.运算符重载
public static [返回类型] operator [运算符] (【形参】)
2.重载转换运算符
public static [implicit | explicit] operator [返回类型] ([当前类型] [变量名])
3.结构和类的区别
结构是值类型,对结构类型变量赋值意味着讲创建所赋的值的一个副本
结构不支持继承,但是可以实现接口(结构中的函数成员不能是abstract或virtual,不能为protected 或 protected internal)
结构实例的默认值不是Null, 而是具有默认的初始值
在结构和类中,this的意义不同
在结构中,实例字段声明不能含有变量初始值的设定项
在结构中不能声明无参数的实例构造函数
在结构中不允许声明析构函数
4.委托与事件
【特性】【修饰符】delegate 【返回类型】【委托名】(【形参】)
声明:public delegate Int32 MyDelegate(Object val, Int32 i);
另外需要一个与委托兼容的函数 (返回类型相同,参数列表相同)
定义:MyDeledate myGate = new MyDelegate(【函数】)
调用:myGate(参数); 参数将传给函数。
匿名函数: delegate(double x){ return x* x;}
在类中自定义事件的实现步骤总结如下:
1、定义一个提供事件数据的类
2、声明事件的委托
3、用event关键字在类中定义名为EventName的公共事件成员。将事件成员的类型设置为事件委托类型。
4、在引发事件的类中定义一个受保护的方法。
5、在引发事件的类中确定引发该事件的时间。
在另一个类中定义的时间使用:
1、在使用事件的类中定义一个与事件委托具有相同的签名的事件的处理方法。
2、使用对该事件的处理方法的一个引用创建委托的一个实例。
3、用+=操作符将该委托实例添加到时间。
4、如不使用该事件,用-=移除即可。