正如問題標題所示,我想在界面中添加Action<string>
。這可能嗎?目前,它說Interfaces cannot contain fields
如何將Action <string>添加到界面?
回答
你需要將其添加爲一個屬性:
public interface IYourInterface
{
Action<string> YourAction { get; set; }
}
沒有get/set方法,它只是一個領域,因爲編譯器指出接口不能包含字段。這也意味着,當你實現這個接口,您需要提供實際的屬性,以及(儘管這顯然可以是一個簡單的自動屬性):
public class Foo : IYourInterface
{
public Action<string> YourAction { get; set; }
// ...
}
鑑於這種情況,您就可以使用您的Action<string>
從接口:
IYourInterface iFoo = new Foo();
iFoo.YourAction = s => Console.WriteLine(s);
iFoo.YourAction("Hello World!");
正如漢斯表示,你可以在你的界面顯示只是一個get
(甚至只是一個set
)如果你想。這並不意味着類不能有有另一個,它只是意味着它不會通過接口訪問。例如:
public interface IYourInterface
{
Action<string> YourAction { get; }
}
public class Foo : IYourInterface
{
public Action<string> YourAction { get; set; }
}
所以在上面的代碼中,你可以訪問YourAction
屬性只爲get
通過該接口,但你可以set
或從Foo
類get
它。
作爲一個附加說明:在一個界面中,你可以指定只有一個「get」:'動作
非常真實。你甚至可以指定它只有一個集合(雖然這有點用處不大) – 2012-03-19 15:00:58
一個接口不能包含字段,但它們可以包含屬性,所以你可以這樣添加它。
我引述:
「接口包括方法,屬性,事件,索引,或者任何 這四個成員類型的組合而得到的接口不能包含 常數,域,操作符,實例構造函數,析構函數。 ,或 類型不能包含靜態成員的接口成員 自動公開,而不能包含任何訪問修飾符」
,因爲行動是費爾德 - 它不能成爲一個接口的一部分。 http://msdn.microsoft.com/en-us/library/ms173156.aspx
誰說它必須是一個字段。它也可能是一個財產。 – rideronthestorm 2013-04-15 14:58:19
- 1. 如何將圖片添加到界面..?
- 2. 如何將界面添加到包中?
- 3. 如何將新行(記錄)添加到用戶界面
- 4. 如何在界面生成器中將UButton添加到UIButton
- 5. 如何將UIActivityMonitor添加到我的界面?
- 6. 如何將自定義插件添加到KeystoneJS管理界面?
- 7. 如何將自定義翻譯添加到用戶界面?
- 8. 如何將圖像添加到XCode的界面生成器中?
- 9. 如何將「Action Bar Icon Pack」添加到Android Studio
- 10. 如何將下拉菜單添加到Android Action Bar
- 11. 如何將Action Listener添加到此按鈕?
- 12. 如何將參數添加到rails index action/method?
- 13. 如何將Expires響應標頭添加到WebAPI Action響應中?
- 14. 如何將文本添加到Android的Action Bar Home按鈕?
- 15. Web界面添加到現有項目
- 16. 爲什麼我不能將列表<T:界面>添加到列表<列表<Interface>>?
- 17. 如何將頁面添加到菜單?
- 18. 如何將頁面添加到panoramaItem?
- 19. 如何將3D曲面添加到AnchorPane
- 20. 如何將html添加到此頁面?
- 21. 如何將JFreechart添加到面板?
- 22. 如何將WPF頁面添加到tabcontrol?
- 23. 如何將滾動添加到面板
- 24. 如何將控件添加到頁面?
- 25. 如何將頁面添加到RDoc?
- 26. 如何將新頁面添加到nopcommerce?
- 27. 將ScriptPath添加到<asp:scriptmanager刷新頁面。如何阻止頁面刷新?
- 28. 如何正確添加Action和Func <>委託類型到C#2.0?
- 29. 如何將值添加到List <Map <String,Object >>?
- 30. Android - 如何通過用戶界面添加elem到列表?
將代表添加到您的合同/接口是一個糟糕的設計。 – 2012-03-19 14:38:11
@KirillPolishchuk你能解釋/證明嗎? – anatol 2017-12-01 04:56:12