1.定义
delegate:委托,是一个类型,表示对一个带有特殊参数列表和返回类型的引用。
作用是把一个方法作为参数传递给其他方法
2.用法
2.1 基础用法
首先,声明一个委托
public delegate void Callback(string message);
声明了一个叫做Callback的委托,并且可以传入一个string类型的参数message,返回值为void
然后,创建一个需要委托的方法
public static void DelegateMethod(string message)
{
Console.WriteLine(message);
}
接着,实例化委托
Callback handler = DelegateMethod;
最后,调用委托
handler("Hello World");
注:调用时传递到委托的参数,也会传递给委托的方法。
2.2 Func 和 Action 泛型委托
Action:带输入参数
Func<in T, out T>:带输入参数和返回值
先声明一个方法
public void sort<T> (int num, Func<int, int> func)
{
Console.WriteLine(func(num));
}
public int calc(int num)
{
return num * 2;
}
然后调用
sort(2, calc);
控制台打印结果为:4