一、什么是委托(what)
1.简单的理解委托就是一个类,只不过这个类有些特殊。
2.这个类是将方法作为参数进行实例化的,
3.需要注意的是,实例化传进来的参数只有方法名不加()。
二、为什么要使用委托(why)
1.使用委托来减少if-else语句的使用
三、怎么使用委托(how)
首先声明委托:
修饰符 delegate 返回值类型 类名(被委托方法的参数);
public delegate void show(string s);
然后实例化:
show s1=new show(ShowA);
//ShowA是一个方法名。不要把ShowA()当作参数。
四、实际操作如下:
//声明委托
public delegate void show(string s);
//被委托的方法ShowA,ShowB
public static void ShowA(string s)
{
Console.WriteLine("A is {0}", s);
}
public static void ShowB(string s)
{
Console.WriteLine("B is {0}", s);
}
//实例化委托并运行
show s1=new show(ShowA);
show s2=new show(ShowB);
s1("A");
s2("B");
以上代码执行结果:
五、c#内置委托Action和Func
简单理解:
Action<int>可以没有参数也可以有参数,但是没有返回值。
Func<int ,int>可以没有参数也可以有参数,但是一定有返回值。
总结:没有返回值用Action,有返回值用Func。