c 匿名方法

2021-08-08 11:44:21 字數 1484 閱讀 7230

例如下面這兩個例子:

不使用匿名方法的委託:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

delegate

int otherdel(int

param);

public

static

void

main()

", del(20

)); console.writeline(

"", del(10

)); }} }

使用匿名方法的委託:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

; console.writeline(

"", del(20

)); console.writeline(

"", del(10

)); }} }

兩種結果是一樣的。

1)宣告委託變數時候作為初始化表示式。

2)組合委託時在賦值語句的右邊。

3)為委託增加事件時在賦值語句的右邊。

delegate (parameters );

關鍵字  引數        語句塊

匿名方法不會宣告返回值型別。但是匿名方法返回值型別必須和委託返回值一樣。

引數:引數數量,型別和修飾符必須和委託一樣。

但是我們可以使圓括號為空,或省略圓括號來簡化匿名方法的引數列表。但是僅在下面兩項都為真的情況下才可以這麼做。

1,委託的引數列表不包含任何out引數的委託。

2,匿名方法不使用任何引數。

例如下面:

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

; }}

}

如果委託引數包含params引數,那麼params關鍵字就會被匿名方法的引數列表忽略。如下:

delegate

int otherdel(int x,params

inty);

otherdel del = delegate(int x,int

y) ;

c 匿名方法用途 C 匿名方法

我們討論了使用委託來引用具有與委託相同簽名的任何方法。換句話說,您可以使用該委託物件呼叫可由委託引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只是主體。您無需在匿名方法中指定返回型別 它是從方法體內的return語句推斷出來的。編寫匿名方法 匿名方法是通過建立...

c 匿名方法用途 C 匿名方法

c 語言 的 c 匿名方法 前面我們學習過,委託可用於引用任何與委託簽名相同的方法。換句話說,可以呼叫可以由委託使用該委託物件引用的方法。匿名方法提供了一種將 塊作為委託引數傳遞的技術。匿名方法是沒有名稱的方法,只有方法體。不需要在匿名方法中指定返回型別 它是從方法體中的return語句來推斷的。編...

C 匿名方法

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