2010-05-19 66 views
1

我是C#的初學者,我無法理解delegate。 任何人都可以提供一些更好的鏈接,我可以快速理解嗎?C#中的代表是什麼?

+0

可能的重複:http://stackoverflow.com/questions/2474439/please-explain-net-delegates – 2010-05-19 09:57:39

回答

1

用超出本答案範圍的適當的詳細id解釋代表。我會向你指出一些可以幫助你理解的文章。

從MSDN ..

在C#委託是類似於在C或C 函數指針++。使用代理允許程序員 在委託對象內封裝對方法 的引用。代理 對象然後可以被傳遞給代碼 ,其可以調用引用的方法 而不必在編譯時間 知道哪個方法將被調用。與C或C++中的 函數指針不同, 代表是面向對象的, 類型安全且安全。

委託聲明定義了一種封裝具有特定參數集和返回類型的方法的類型。對於靜態方法,委託對象封裝了要調用的方法。對於實例方法,委託對象在實例上封裝實例和方法。如果您有委託對象和一組適當的參數,則可以使用參數調用委託。

的 一個有趣且有用的屬性委託是它不知道或 關心的類,它引用的對象 的。任何對象都會 做;所有重要的是, 方法的參數類型和返回 類型匹配代表的。這使 代表非常適合 「匿名」調用。

1

你檢查出MSDN:

delegate

甲委託聲明定義了可用於封裝具有特定簽名的方法的引用類型。委託實例封裝靜態或實例方法。委託與C++中的函數指針大致相似;然而,代表是類型安全的和安全的。

An Introduction to Delegates,第一個句子,其中規定:

回調函數是肯定的有史以來最有用的編程機制之一。

所以,如果你熟悉回調,你已經對代表有了一些瞭解。