什么是委托
委托是一种引用类型,表示对具有特定参数列表和返回类型的方法的引用。 委托对方法的引用的,委托实例调用方法。
委托的声明
使用委托可以直接使用.NetFramework已经定义的委托,也可以自定义。自定义委托是用delegate声明,编译器在使用 delegate关键字时生成的代码自动会继承MulticastDelegate 类的成员的方法调用。
使用delegate自定义的委托
示例演示了一个委托声明:
public delegate int PerformCalculation(int x, int y);
框架的委托
Action 类型,Action委托的变体可包含多达 16 个参数,它的返回类型都是void,示例演示:
public delegate void Action();
public delegate void Action<in T>(T arg);
public delegate void Action<in T1, in T2>(T1 arg1, T2 arg2);
Func 类型,Func委托是带有返回值的,示例演示:
public delegate TResult Func<out TResult>();
public delegate TResult Func<in T1, out TResult>(T1 arg);
public delegate TResult Func<in T1, in T2, out TResult>(T1 arg1, T2 arg2);
还有一种专门的委托类型 Predicate,