用delegate声明一个自定义委托
-
委托用于间接引用单个或多个方法。
-
委托引用的方法需要类型兼容
-
委托类似于c/c++语言中的函数指针
-
委托是一种类,是一种引用变量
-
委托虽然是一种类,但声明方法更类似于函数,而不像正常类
-
委托的声明需要表明返回类型和参数列表
-
委托被赋值一个实例时为单播委托
-
委托可以通过+=符号添加多个方法,成为多播委托。多种方法的返回值和函数列表必须一致
-
声明委托时建议与其它类平级,但c#支持嵌套类,所以也可以声明在其它类的内部
-
调用方法:myDelegate.Invoke(); 调用的完整写法 ; myDelegate(); 调用的简略写法 ;
Action<>委托和Func<>委托
-
Action<>委托没有返回值,可以添加最多16个参数,尖括号中依次声明参数的类型。
-
Func<>委托有返回值,可以添加最多16个参数,尖括号中依次声明参数的类型,尖括号最后一个类型声明代表返回值类型!
通过委托和Lambda表达式简化代码,减少代码冗余