C 的匿名方法

2022-02-20 08:09:53 字數 1424 閱讀 2902

沒有匿名方法的時候(c# 1.0)

addbutton.click += new eventhandler(addclick);

void addclick(object sender,eventargs e)

有了匿名方法之後(c# 2.0)

addbutton.click += delegate

c# 支援用於呼叫乙個或多個方法的委託 (delegate)。委託提供運算子和方法來新增或刪除目標方法,它也可以在整個 .net 框架中廣泛地用於事件、**、非同步呼叫、多執行緒等。

常規委託:

class someclass

void somemethod()  

}可以用乙個匿名方法來定義和實現這個方法:

class someclass

;

del();  

}

}

匿名方法當做引數傳入:

class someclass

);  

}  

void invokedelegate(somedelegate del)  

}下面是乙個將匿名方法作為引數傳遞的具體而實用的示例,它在沒有顯式定義 threadstart 委託或執行緒方法的情況下啟動乙個新的執行緒:

public class myclass

public void lauchthread()

thread workerthread = new thread(delegate()

messagebox.show("hello");

workerthread.start();

帶引數的匿名方法:

class someclass

;

del("hello");  

}

}一般的匿名方法:

class someclass

del(t);  

}

}注意點:

1.如果匿名方法沒有引數,則可以在 delegate 關鍵字後面使用一對空括號:

class someclass

;

del();

}

}2.如果您將 delegate 關鍵字與後面的空括號一起忽略,則您將定義一種特殊的匿名方法,它可以指派給具有任何簽名的任何委託:class someclass

;

del("parameter is ignored");  

}

}

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

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

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

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

C 匿名方法

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