C 學習筆記(三) C 高階特性 匿名方法

2021-08-01 11:12:38 字數 529 閱讀 5051

delegate int transformer (int i);

transformer sqr = delegate (int

x) ;

console.writeline (s

qr(3)); //

9

他在語義上與下列的lambda表示式的宣告是一樣的

transformer sqr = (int x) => ;
public

event eventhandler clicked = delegate ;//這段**可以看出,eventhandler本來是需要object和eventargs引數的,但是delegate{};可以這樣寫,這是匿名方法唯一的不同於lambda表示式的地方。

這樣,在引發事件時就可以避免檢查null值。下面的寫法也是合法的:

// 省略了引數。

clicked += delegate ;

C 學習筆記(三) C 高階特性 匿名型別

var dude new 編譯器將這個語句編譯成類似於下面的東西 internal class anonymousgeneratedtypename public string name public int age the equals and gethashcode methods are ov...

C 學習筆記(三) C 高階特性 擴充套件方法

public static class stringhelper iscapitalized方法像例項方法一樣被string來呼叫,像這樣 console.writeline perth iscapitalized 擴充套件方法被編譯後會被編譯器轉換為普通的靜態類的靜態方法的呼叫,像這樣 conso...

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

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