一句話說清楚啥是delegate,說清楚delegate

來源:互聯網
上載者:User

一句話說清楚啥是delegate,說清楚delegate
所謂委託就是類對象調用,委派物件代表任意實現該委託的類的對象。
Delegate是什,舉例說明!

Delegate是什嗎?
對微軟來說,一個delegate聲明指定了一個相關的類型,你可以使用這一類型來封裝一個含有特定標記的方法。一個delegate執行個體可以封裝一個靜態或一個執行個體方法。概略的說,Delegates就好象是C++中的函數指標;然而,delegates屬於安全和保護類型。

我的採訪是通過電話進行,所以我可以很容易和輕鬆地闡述這些定義。透明和詳盡的解釋是有必要的。然而,更貼切delegates的定義是,即使在沒有對目標對象(target object)有任何瞭解的情況下,也可以隨時使用一些方法,這樣的方法即為delegates。很多開發人員通常將它們說成回呼函數(callback functions)。現在讓我們看一個範例,以更好理解它的應用。

使用中的Delegates
我們的範常式序開始於兩個簡單的C#類,這兩個類包含一個方法以通過控制台來顯示資訊:

public class DelegateClass1 {

public void exampleMethod1(String passedString) {

Console.WriteLine(passedString); }

}

public class DelegateClass2 {

public void exampleMethod2(String passedString) {

Console.WriteLine(passedString); }

}

請注意到,這兩個類執行類似的方法。這些方法具有不同的名稱,但它們的標記和實體都相同。你可以使用一個delegate來結合這兩個方法,實現過程是通過定義一個從這兩個方法的通常特性中抽象出新的資料類型。也就是,它們都將一個簡單的字元作為一個變數並返回void。C# delegate關鍵詞使得這些變成可能:

public delegate void example(String passedString);

例如,使用這一新的資料類型聲明,我們可以通過一個通常的抽象來調用這兩個方法。下面的C#控制台程式利用了我們的delegate範例來調用這兩個類的方法:

public class TestExampleDelegate {

public delegate void example(String passedString);

public static void Main(string[] args) {

example[] items = new example[2];

items[0] = new example(new DelegateClass1().exampleMethod1);

items[1] = new example(new DelegateClass2().exampleMethod2);

for(int i = 0; i < items.Length; i++) {

items[i]("Builder.com Rules!");

} } }

以上代碼建立了一個數組的範例對象,並使用這些類中的方法執行個體化這些對象。由於忽略了括弧,範例對象被一個調用方法處理。代碼的執行結果顯示了文本中。

(注意:Delegates不屬於C#的細節;它們是.NET Framework的標準部分,所以你可以使用其它的語言,比如VB.NET或者J#。)

在任何地方都可以使用Delegates
在這一點上,也許你只知道有這樣一回事,但卻沒有察覺它在你的......餘下全文>>
 
eclipse 自動注釋設定中 Delegate Methods(委託方式)是什

代表方法(Delegate Methods)標籤:
/**
* ${tags}
* ${see_to_target}
*/
參考資料:www.chineselinuxuniversity.net/articles/28810.shtml
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.