C#中的 lambda表示式
1:lambda表示式是基於委託來實現的,是匿名函式的另外一種根偉抽象的書寫方法
首先來看看匿名函式(匿名方法): 有一些方法只使用一次,就不用謝一個具體的方法來提供呼叫。案列
namespace 匿名方法
{
//委託
public delegate void DelCompare();//無引數無返回值的委託
public delegate void DelComparePram(); / /有引數,無返回值的委託
public delegate int
class Program
{
static void Main(string[] args)
{
DelCompare delpare1 = delegate
delpare1 (); / /輸出
DelComparePram delpare2 = delegate(string str) { Console.WriteLine("帶引數的匿名函式方法體:引數是 :" +str) ; } ;
delpare2 ("張三");//輸出
DelComparePramRet delpare3 = delegate(int a ,int b ) { return a + b ; } ;
Console.WriteLine(delpare3(10 , 20 ) ) ; //這裡輸出30,因為匿名函式中是對兩個值進行了相加
/ /上面就是匿名函式的,無參,帶參無返回值,帶參有返回值的三種寫法,匿名函式繼續簡化後就是lambda表示式的寫法了,如下 = () => { };
DelCompare d_lambda = () => { Console.WriteLine( "匿名無參方法體" ) ; } ;
d_lambda ();
DelComparePram d_lambdaPram = str => { Console.WriteLine("引數是 :" + str) ; }; / /帶一個引數 可以省略小括號
d_lambdaPram ("傳入引數");
DelComparePramRet d_delpareRet = ( x , y ) => { return x + y ; };
int sum = d_delpareRet(10 , 20 ); / /返回 10 和 20 的和。
}
}
}
結尾,lambda表示式是匿名函式的一種更為簡單的寫法,在有引數的lambda表示式中,引數不用指定型別 , 因為在委託中就已經指定了型別了