關於c#委託的幾點

來源:互聯網
上載者:User

1.什麼時候用委託:
當給一個方法傳遞的參數是方法,而不是資料的時候,要使用委託。如:多線程、事件、運行時才能確認的應用程式等。

2.如何使用委託:
定義委託:(與類相同)delegate string GetAString();
執行個體化:GetAString testString=new GetAString("test".ToString());
運行: Console.Write(testString());
類圖:
System.Delegate
|
System.MulticastDelegate
|
GetAString

3.如何理解委託:
可把委託看做給方法簽名指定的名稱。如:
delegate string GetAString();
傳回型別為string,無參數的方法的簽名的名字為GetAString.

4.委託的作用:
類似於c/c++的回呼函數(函數指標).但c中這個指標是什麼(只是個儲存地址),參數及傳回型別是什麼都是未知,類型不安全。而委託是型別安全的,因為它規定了方法的簽名。

5.多播委託:
包含多個方法的委託,叫多播委託。傳回型別為void,c#編譯器遇到傳回型別為void的委託,即預設為多播委託。
如:delegate void GetAString();
GetAString testString=delegate()
{
Console.WriteLine("a");
}
testString+=delegate()
{

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.