C#中() =>是什么意思


Lambda表達式。
“Lambda 表達式”是一個 匿名函數,它可以包含表達式和語句,並且可用於創建委托或表達式樹類型。

所有 Lambda 表達式都使用 Lambda 運算符 =>,該運算符讀為“goes to”。該 Lambda 運算符的左邊是輸入參數(如果有),右邊包含表達式或語句塊。Lambda 表達式 x => x * x 讀作“x goes to x times x”。

參考資料: http://msdn.microsoft.com/zh-cn/library/bb397687.aspx

 


Lambda表達式是C#3.0的新內容,如果您之前學習的C#2.0,不認識也就不奇怪了。
給您舉個例子。
例如,我定義一個委托:
delegate int Method(int a, int b);
再定義一個方法:
int Add(int a, int b)
{
return a + b;
}
我可能需要這樣通過委托調用方法:
Method m += Add;
Console.WriteLine(m(2, 3));
====================================================
但如果用 Lambda 表達式:
Method m += (a ,b) => a + b;
Console.WriteLine(m(2, 3));
可以省去方法的定義。
實際上, Lambda 表達式只是簡化了匿名方法的語法而已。

附 C# 2.0 的匿名方法語法:
Method m += delegate(int a, int b) { return a + b; };
Console.WriteLine(m(2, 3));
*******************************************************************************
C#中 += (s, e) => 這些字符什么意思
public MainWindow()
{
InitializeComponent();
this.Loaded += (s, e) => DiscoverKinectSensor();
this.Unloaded += (s, e) => this.kinect = null;
}
在上面的代碼中,+=是在委托鏈上增加一個委托,(s,e) =>是一個lambda表達式,這個表達式創建一個委托,委托處理的主體就是=> 后面的部分。

其實這個寫法相當於
this.Loaded += new EventHandler(Form_Loaded);

private void Form_Loaded(object sender,   EventArgs e) {
    DiscoverKinectSensor();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM