我有一個後端類必須引發沒有參數的事件。 MethodInvoker具有所需的簽名,但它在後端類中使用它感覺有點奇怪,因爲它在System.Windows.Forms中定義。 .Net框架中的其他名稱空間中是否有另一個具有此簽名的委託?如果不是,你認爲我應該自己定義一個具有該簽名的委託或者使用MethodInvoker來代替?在後端類中使用MethodInvoker
2
A
回答
1
如果您使用的是.NET 2.0:
定義您自己的委託類型。在我看來,僅僅爲這種簡單類型引用程序集並不是好主意。
許多框架也這樣做。即使在mscorlib(2.0)中也可能有一些。但是,它們可能位於較深的命名空間中,這些命名空間的使用可能會與您的課程相結合,令人費解。
因此,在.NET 3.5之外使用您自己的代理類型。
1
如果您可以使用.NET 3.5,則可以使用Action
委託。如果沒有,那麼你可以隨時聲明(+所需的任何其他Action
或Func
代表)在Utils
類或類似:
public delegate void Action();
public delegate void Action<T1, T2>(T1 arg0, T2 arg1);
public delegate TResult Func<T1, TResult>(T1 arg0);
public delegate TResult Func<T1, T2, TResult(T1 arg0, T2 arg1);
等等
需要注意的是.NET 2已經包括void Action<T>(T arg)
代表,但沒有任何其他人
相關問題
- 1. 如何在C++中使用MethodInvoker?
- 2. WPF中的MethodInvoker?
- 3. MethodInvoker在WPF
- 4. WPF調用和MethodInvoker
- 5. C#MethodInvoker - 如何在類B中的類A中的線程中調用方法?
- 6. 使用MethodInvoker而無需調用
- 7. 非Invocable的錯誤時使用MethodInvoker
- 8. 我應該使用MethodInvoker或行動
- 9. MethodInvoker的區別?
- 10. MethodInvoker的按鈕
- 11. MethodInvoker vs Control.Invoke
- 12. MethodInvoker輸了?
- 13. 使用在後端
- 14. MethodInvoker vs Action for Control.BeginInvoke
- 15. C#:this.Invoke((MethodInvoker)委託
- 16. 在DDP/Meteor後端中使用Ember.js
- 17. 在後端保留類型
- 18. 創建一個MethodInvoker函數
- 19. 如何使用前端和後端構造類(PHP)
- 20. SAPUI5創建使用在SAP後端我使用後
- 21. 在CUB類後使用cudaDeviceSynchronize
- 22. Android前端如何使用PHP後端?
- 23. 如何在Postgres後端使用Cayley?
- 24. 如何在node.js後端使用字體?
- 25. 在Windows上使用vlc後端聲音
- 26. 如何在WordPress後端使用javascript
- 27. 使用在Keras(Tensorflow後端)binary_crossentropy損失
- 28. WordPress後端類型錯誤:t.parsed.responses [0]在類別中未定義
- 29. 使用AJAX與aspx後端?
- 30. 使用後端文件nodejs
不幸的是,我使用的是.NET Framework 2.0。您對後端類中MethodInvoker的使用普遍認爲什麼? – Ikaso 2010-03-04 11:42:28
我會在一個通用名稱空間中創建自己的.NET 3.5委託版本;這樣,當你這樣做的時候很容易轉換成3.5。而MethodInvoker是爲winforms跨線程調用而明確設計的;將其用作一般方法似乎在概念上是錯誤的。 – thecoop 2010-03-04 11:46:53
@thecoop能否請你指點一下展示.Net 2解決方案的示例?謝謝 – Fandango68 2016-11-21 07:53:16