匿名方法的使用

匿名方法,本质上就是一个方法,只是他没的名字,任何使用委托变量的地方都可使用匿名方法赋值

方法代码:

 

static void doubleint(int t1, int t2)
        {
            Console.WriteLine(t1+t2);
        }

 

匿名方法的形式:

Func<int, int, int> f = delegate(int t1, int t2)
            {
                return t1 + t2;
            };

以上为Func内置委托的例子,任何使用委托变量的地方都可使用

Lamba表达式:

从c#3.0开始,用Lambda表达式代替匿名方法,所以Lambda表达式也是声明了一个方法,任何使用委托变量的地方都可使用,匿名方法能用的他也能。

格式如下:

  Func<int, int, int> a = (arg1, arg2) =>
            {
                return arg1 + arg2;
            };

当Lambda表示的参数只有一个,函数体也只有一句时,可以不加参数的括号和函数体的大括号

Func<int,int> b = arg => arg+15;
Func<int, int> c = (arg) =>
            {
                return arg + 15;
            };
            Console.WriteLine(b(35));
            Console.WriteLine(c(35));
            Console.ReadKey();

因此两者返回结果应当相同,都为50.

注意:通过Lambda表达式可访问到它以外的变量,这个是一个好的功能,但有时也会很危险。

 

 

 

posted @ 2019-11-22 08:38    阅读(374)  评论(0)    收藏  举报

Noting is impossible,itself says that i am possible