C 委託四 匿名方法

2022-01-11 12:22:43 字數 1370 閱讀 7268

什麼是匿名方法?

匿名方法是c#2.0引入的乙個新特性,它允許開發者宣告自己的函式**而無須使用委託函式。

c#為委託提供一種機制,可以為委託定義匿名方法,匿名方法沒有名稱,編譯器會定指定乙個名稱,匿名方法中不能使用跳轉語句跳轉到該匿名方法的外部,也不能跳轉到該方法的內部。也不能在匿名方法外部使用的ref和out引數。

通過使用匿名方法,可以不必建立單獨的方法,因此減少了例項化委託所需的編碼系統開銷。例如,如果建立方法所需的系統開銷是不必要的,則指定**塊(而不是委託)可能非常有用。

什麼時候該使用匿名方法

1.需要乙個臨時方法,該方法使用次數極少;

2.這個方法的**很短,甚至可能比方法宣告都短的情況下使用。

下面看一下簡單的小例子:

class program

/// /// 宣告乙個委託,用於實現多播操作

///

///

delegate void mymulticastdelegate(string test);

static void main(string args)

);md(test);

console.read();}}

通過上面**可以看到,上面是通過委託實現方法呼叫的,下面的就是通過匿名方法實現的。

檢視執行後的效果:

c#3.0之後匿名方法可以使用λ表示式來進行定義

無論是拉姆達(lambda)表示式(匿名函式、是匿名類) ,都能歸屬到一種叫閉包的東西上面。

左邊是引數,使用括號表達 (string param),可以是 (param)這樣不定義型別,編譯器會推斷出來,只有乙個引數的時候可以不使用括號。右邊是實現**,使用花括號,如果**只有一行,則不使用花括號和return關鍵字也可以,編譯器會為我們新增。

這是λ表示式的簡單實現↓

/// /// 宣告乙個委託,用於實現多播操作

///

///

delegate string mymulticastdelegate(string test);

static void main(string args)

;console.writeline(my("test"));

console.writeline(my2("aaaa"));

console.read();

}

執行結果為

C 委託 使用匿名方法

使用c 委託還有另一種重要方法 通過匿名方法。其中,匿名方法是用作委託引數的乙個 塊。請看下面的例子 匿名方法的作用是使 更簡化,方便了程式設計師。如果沒有匿名方法,則定義一套事件監聽需要這樣 class program 一般來說,定義的myeventhandler方法只用來響應事件,只在上面那一處...

C 委託 使用匿名方法

使用c 委託還有另一種重要方法 通過匿名方法。其中,匿名方法是用作委託引數的乙個 塊。請看下面的例子 匿名方法的作用是使 更簡化,方便了程式設計師。如果沒有匿名方法,則定義一套事件監聽需要這樣 class program 一般來說,定義的myeventhandler方法只用來響應事件,只在上面那一處...

C 委託 匿名委託

c 委託 匿名委託 委託變數在繫結方法時,是把方法名賦值給了委託變數名,這 樣就需要在類裡面定義方法,而有些方法只用到了 次,這樣的 方法在類裡面過多時,程式的可讀性就不是太好,針對這種情 況,可以使用匿名委託,即不用在類裡面額外定義方法.delegate定義的匿名委託 格式 delegate 引數...