匿名方法的使用
匿名方法,本质上就是一个方法,只是他没的名字,任何使用委托变量的地方都可使用匿名方法赋值
方法代码:
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表达式可访问到它以外的变量,这个是一个好的功能,但有时也会很危险。
当你背单词时,阿拉斯加的鳕鱼正跃出水面。 当你解微分方程时,大洋彼岸的海鸥正拂过费城。 当你晚自习时,极图的夜空散满了五彩斑斓。 当你为自己的未来踏踏实实努力时, 那些你从未见过的风景, 那些你以为不会遇到的人, 你要的一切, 正一步步向你走来。
浙公网安备 33010602011771号