1、匿名方法 匿名方法本质上是一个方法,只是没有名字,任何使用委托变量的地方都可以使用匿名方法赋值。 1.2 class Program { static void Main(string[] args) { Func plus = delegate (int t0, int t1) { return t0+t1; }; //匿名方法本质上是一个方法,只是没有名字,任何使用委托变量的地方都可以使用匿名方法赋值。 } }
2.Lambda表达式 2.1,C#3.0开始,可以使用lambda来代替匿名方法,只要有委托参数类型的地方都可以使用lambda表达式。 lambda表达式用来代替匿名方法,所以lambda表达式也是定义了一个方法。lambda表达式的参数是不需要声明类型的。 Lambda运算符=>左边列出了需要的参数,如果是一个参数可以直接写成a=> 2.2 class Program { static void Main(string[] args) { //lambda表达式用来代替匿名方法,所以lambda表达式也是定义了一个方法。 Func plus = (arg1, arg2) =>//lambda表达式的参数是不需要声明类型的。 { return arg1 + arg2; }; Console.WriteLine(plus(80,20)); Console.ReadKey(); } } 2.3结果: 2.4Lambda表达式表示的参数只有一个的时候,可以不加上括号,当函数体的语句只有一句的时候,我们可以不加上大括号,也可以不加上return语句。 class Program { static void Main(string[] args) { Func test1 = a => a+1; Func test2 = (a) => { return a + 1; }; Console.WriteLine(test1(23)); Console.WriteLine(test2(23)); Console.ReadKey(); } }
2.5运行结果