一、匿名方法的使用
定义:匿名方法不能直接在类中定义,而是在给委托变量赋值的时候,需要赋值一个方法,此时可以“现做现卖”,定义一个匿名方法传递给该委托。
***举实例说明:
实例一:无参数,无返回值的一个匿名方法
////首先定义一个委托
public delegate void Mydelegate();
////声明
Mydelegate md=delegate(){
Console.WriteLine("我是Andrew");
}
////调用委托
md();
实例二:有参数,无返回值的一个匿名方法
////首先定义一个委托
public delegate void Mydelegate(string msg);
////声明
Mydelegate md=delegate(string msg){
Console.WriteLine("我是Andrew"+msg);
}
////调用委托
md("你是谁?");
实例三:有参数,有返回值的一个匿名方法
////首先定义一个委托
public delegate int Mydelegate(int num1,int num2);
////声明
Mydelegate md=delegate(int n1,int n2){////注意:匿名方法时,无需添加返回的类型
return n1+n2;}
////调用委托
md(1,2); ////结果为3
二、 Lambda表达式的语法使用格式:
参数列表 => 语句或语句块
其中“参数列”中可包含任意个参数(与委托对应),如果参数列中有0个或1个以上参数,则必须使用括号括住参数列,如下:
() => Console.Write("0个参数")
I => Console.Write("1个参数时参数列中可省略括号,值为:{0}",i)
(x,y) => Console.Write("包含2个参数,值为:{0}*{1}",x,y)
实例一:无参数,无返回值的一个匿名方法
////首先定义一个委托
public delegate void Mydelegate();
////声明
Mydelegate md=()=>{
Console.WriteLine("我是Andrew"); }
////调用委托
md();
实例二:有参数,无返回值的一个匿名方法
////首先定义一个委托
public delegate void Mydelegate(string msg);
////声明
Mydelegate md=m=>{
Console.WriteLine("我是Andrew"+m); }
////调用委托
md("你是谁?");
实例三:有参数,有返回值的一个匿名方法
////首先定义一个委托
public delegate int Mydelegate(int num1,int num2);
////声明
Mydelegate md=(x,y)=>{////注意:匿名方法时,无需添加返回的类型
return x+y;}
////调用委托
md(1,2); ////结果为3