複製鏈接
請複製以下鏈接發送給好友

匿名方法

鎖定
匿名方法是C#2.0引入的一個新特性,它允許開發者內聯(inline)聲明自己的函數代碼而無須使用委託函數(delegate function)。匿名方法通常在1. 需要一個臨時方法,該方法使用次數極少;2. 這個方法的代碼很短,甚至可能比方法聲明都短的情況下使用。
中文名
匿名方法
屬    性
C#2.0引入的一個新特性
使用時間1
需要一個臨時方法
使用時間2
這個方法的代碼很短

目錄

匿名方法簡介

在C# 1.1裏,聲明和使用委託要求你有委託和一個在委託被觸發時具有匹配簽名的能夠執行的方法,以及一個將命名方法與委託關聯的分配語句。作為C# 2.0的新特性,匿名方法基本上能夠提供與先前命名方法相同的功能,但是它已經不再需要一個在關聯到委託之前就明確創建的方法了。
你可以把C# 匿名方法想象為一個實現與委託進行關聯這項功能的便捷途徑。如果同時看一下匿名方法實現和命名方法實現所取得IL結果,你會發現這兩者之間的差別非常小。當編譯器碰到匿名方法的時候,它會在類裏面創建一個命名方法,並將它與委託進行關聯。所以匿名方法在運行期間與命名方法的性能非常類似——性能的增加體現在開發人員的生產效率上,而不是運行期間的執行上。
此外,C#3.0中提供了一個新特性--Lambda表達式,它提供了完成相同目標的更加簡潔的格式。

匿名方法範例

利用delegate關鍵字創建匿名方法,如下:
button1.Click += delegate(System.Object o, System.EventArgs e)
{
System.Windows.Forms.MessageBox.Show("Click!");
};