1、委托是一种引用方法的类型,一旦为委托分配了方法,委托将与该方法具有相同的行为。委托方法的调用可以像其他任何方法一样,具有参数和返回值。
2、委托的特点:
(1)委托类似于C++函数指针,但它们是类型安全的。
(2)委托允许将方法作为参数进行传递。
(3)委托可用于定义回调方法。
(4)委托可以连接在一起;例如:可以对一个事件调用多个方法。
(5)方法不必与委托签名完全匹配。
(6)匿名方法和lambda表达式都可以编译为委托类型。这些功能统称为匿名函数。
3、委托的定义:
 delegate void Dele(int i);
 定义方法:
 public void Method(int i)
{
 Console.WriteLine("参数为:{0}",i);
 }
 关联委托和方法:
Program pro=new Program();
Dele del=new Dele(pro.Method);
del(100);
4、与委托的签名(由返回类型和参数组成)匹配的任何可访问类或结构中的任何方法都可以分配给该委托。方法可以是静态方法,也可以是实例方法。
5、异步回调:由于实例化委托是一个对象,所以可以将其作为参数进行传递,也可以将其赋值给属性。这样,方法便可以将一个委托作为参数来接受,并且以后可以调用该委托。这称为异步回调。
   异步回调可以实现多个方法同时执行。节省资源
6、事件:类或对象可以通过事件向其他类或对象通知发生的相关事情。
7、协变:子类型的返回值赋给父类型的委托  逆变:是子类型参数返回给父类型的方法。协变逆变都是把子类型赋值于父类型的过程。
7、密封类:可以将类声明为密封类。定义类的时候在class关键字钱加sealed关键字。
   密封类不能作为基类,主要用于防止派生。
8、静态类和类成员用于创建无需创建类的实例就能访问的数据和函数。当类中没有依赖对象标识的数据或行为时,就可以使用静态类。
   类可以声明为static,表示它仅包含静态成员。不能使用new关键字创建静态类的成员。
   同一个类中 静态类成员不能访问实例化成员 实例成员可以访问静态成员
   静态方法可以被重载,但不能被重写。
9、静态类的功能:
(1)仅包含静态成员。
(2)不能被实例化。
(3)是密封的。
(4)不能包含实例构造函数。
10、静态类的优点:编译器能够执行检查以确保不致偶然地添加实例成员。编译器将保证不会创建此类的实例。
11、抽象类:使用abstract关键字可以创建抽象类,抽象类不能实例化。用途:提供多个派生类可共享的基类的公共定义。
12、接口:使用interface关键字定义。
接口属性:接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
          不能直接实例化接口。
          接口可以包含方法、属性、事件、索引器。
          接口不包含方法的实现。
          类和结构可从多个接口继承。
          接口自身可从多个接口继承。