Lambda表达式实例
简单的说lambda是由.NET Framework1.0的委托、.NET Framework2.0的匿名方法演变而来的。但他与匿名方法是有点区别的,匿名方法需要指定参数的类型,而lambda表达式则不用。
lambda表达式的语法是:(输入参数)=>(方法体/表达式)
现将举个最简单的例子
public calss Test{ //定义一个返回值为string类型的委托变量 public delegate strig delTransfer(string s); public test() { } private void Lambda_Click(object sender, EventArgs e) { //Lambda表达式的由来 //.NET Framework 1.0委托--函数指针 //delTransfer trans = new delTranfore(ToPascal); //实例化委托,和方法关联 //Console.WriteLine(trans("abcdefgafateateaft")); //.NET Framework 2.0 匿名方法 //delTransfer trans = delegate(string s) {return s.Substring(0, 1).ToUpper() + s.Substring(1); }; //Console.WriteLine(trans("abcdefgafateateaft")); //.NET Framework 3.5 Lambda表达式 两种写法, =>标识左边表示方法参数(可以为参数加上类型),右边表示方法体 // delTransfer trans = (s) => (s.Substring(0, 1).ToUpper() + s.Substring(1)); // delTransfer trans = s=> s.Substring(0, 1).ToUpper() + s.Substring(1); Console.WriteLine(trans("abcdefgafateateaft")); } //定义和委托相关联的方法 private string ToPascal(this string s) { return s.Substring(0, 1).ToUpper() + s.Substring(1); }}