委托是一个类,定义了方法的类型,可以将方法当做另一个方法的参数进行传递。
public delegate void NoReturn(int a); public static void Func(int a) { } public void Show() { //委托的实例化 要求一个参数类型、返回值都跟委托一致的方法 NoReturn method = new NoReturn(Func); var a = 1; //委托实例的调用,参数和委托约束一致 method.Invoke(a); method(a); }
事件是一种特殊的委托,是带event关键字的委托的实例,event可以限制变量被外部调用/直接赋值(子类继承父类也不能调用)