![](/img/trans.png)
[英]what would I use in this situation(asp.net mvc 3 display templates)
[英]When would I use a delegate in asp.net?
我一直在尋找一種方法來使用我能使用的所有工具,並讓自己超越我所處的位置。 但是,盡管我讀過很多關於委托的內容,但我永遠找不到使用它們的地方(比如接口、Generics 和很多東西,但我離題了。)我希望有人能告訴我他們何時以及如何使用委托在web編程 asp.net c#(2.0 及以上)。
謝謝,如果 Stack Overflow 有問題,請告訴我。
bdukes 對事件的看法是正確的。 但您不僅限於將委托與事件一起使用。
研究經典的觀察者模式以獲取更多關於使用委托的示例。 模式上的一些文本指向事件 model,但從原始學習的角度來看,您不必使用事件。
要記住的一件事:委托只是另一種可以使用和傳遞的類型,類似於您的原始類型,例如“int”。 就像“int”一樣,委托具有自己的特殊特征,當您使用委托類型時,您可以在編碼中對其進行操作。
要真正了解該主題以及其中一些更高級和詳細的方面,請獲取 Joe Duffy 的書.NET Framework 2.0 。
好吧,每當您處理事件時,您都在使用委托。
首先回答你的第二個問題,我認為這對 StackOverflow 來說是一個很好的問題!
第一個例子是排序。 List 上的 Sort() 方法需要一個委托來進行排序,Find() 方法也是如此。 我不太喜歡在數據庫中進行排序,所以我喜歡在我的結果集上使用 Sort()。 畢竟,列表的順序(通常)更多是 UI 問題,而不是業務規則問題。
編輯:我已將我在數據庫之外排序的原因添加到此處的適當問題中。
編輯:排序例程中使用的比較 function 是一個委托。 因此,如果您使用 .Sort(Comparison(T)) 方法對 List 進行排序,則傳遞給排序 function 的 Comparison(T) 方法是一個委托。 請參閱 .Sort(Comparison(T))文檔。
我想到的另一個快速示例是使用 Rhino Mocks 進行單元測試。 你可以用 Rhino Mocks 做的很多事情都利用了委托和 lambda 表達式。
每當您知道要執行某些操作時,都可以使用委托,但該操作的詳細信息將取決於具體情況。
除其他外,我們將委托用於:
另一個例子是發布用戶控件的事件。
例如。
// In your user control
public delegate void evtSomething(SomeData oYourData);
public event evtSomething OnSomething;
// In the page using your user control
ucYourUserControl.OnSomething += ucYourUserControl_OnSomething;
// Then implement the function
protected void ucYourUserControl_OnSelect(SomeData oYourData)
{
...
}
最近我使用代表來“委托”檢查權限。
公共功能檢查權限;
This way, the CheckPermission function can be shared by various controls or classes, say it in a static class or a utilities class, and still be managed centralized, avoiding also Interface explossion; 只是一個想法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.