1、含义:
1) 委托就是将函数作为参数进行传递,把委托作为方法的一个载体,并进行运算。
2) 委托是具有一定数据结构的函数指针
2、使用委托变量的步骤
(1)第一步:准备 要进行委托的方法
(2)第二步:准备委托的类型,注意委托 定义的签名要与将要进行委托的方法的签名保持一致。
委托定义语法: public delegate 返回值 委托类型的名字(参数列表);
例:
无参无返回的委托类型: public delegate void 委托类型名();
有一个int类型返回值的: public delegate int 委托类型名();
比较字符串的返回值: public delegate int 委托类型名(string s1, string s2);
(3)第三步:声明委托变量
语法: 委托类型名 变量名
(4)第四步:授权方法或注册方法,将方法赋值给委托变量,或者进行注册。
语法:委托变量名=方法名;
(5)第五步:使用别名(委托变量名)调用方法,调用方式和调用方法一致。
3、匿名函数:
匿名函数适合在方法只调用一次的情况下使用。并且该方法的方法体比较简单时使用。
语法
委托类型 委托变量 = delegate(类型 参数列表)
{
方法体
};
eg:
public static delegate string DelGetStr(int num);
public void ExcuteDel()
{
//匿名函数
DelGetStr del = delegate(int num)
{
return num.ToString(); //方法体
};
}
5、Lamda表达式:
是匿名函数的另一种形式
语法:采用 => 符号, 读作 gosto
委托类型 委托变量 = (参数列表) => 方法体 ;
如果参数列表没有参数,只需要写一对圆括号即可,如:()=>;
如果参数只有一个,可以省略圆括号,例如:e=>
如果方法体只有一句话,可以省略花括号;
如果方法只有一句话,返回的return,可以省略
public static delegate string DelGetStr(int num);
public void ExcuteDel()
{
//匿名函数
DelGetStr del =(int num)=>{
return num.ToString();
};
}