正如问题标题所示,我想在界面中添加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. 如何将图像添加到XCode的界面生成器中?
- 5. 如何将自定义插件添加到KeystoneJS管理界面?
- 6. 如何将参数添加到rails index action/method?
- 7. 如何将Expires响应标头添加到WebAPI Action响应中?
- 8. 如何将文本添加到Android的Action Bar Home按钮?
- 9. 如何将下拉菜单添加到Android Action Bar
- 10. Web界面添加到现有项目
- 11. 为什么我不能将列表<T:界面>添加到列表<列表<Interface>>?
- 12. 如何将html添加到此页面?
- 13. 如何将WPF页面添加到tabcontrol?
- 14. 如何将控件添加到页面?
- 15. 如何将滚动添加到面板
- 16. 如何将3D曲面添加到AnchorPane
- 17. 如何正确添加Action和Func <>委托类型到C#2.0?
- 18. 如何添加第二个界面到现有的Web服务?
- 19. 如何添加属性到现有的界面?
- 20. Android - 如何通过用户界面添加elem到列表?
- 21. 如何将自定义视图添加到iPhone应用的用户界面?
- 22. 如何将Facebook登录界面添加到我的React Native应用程序中?
- 23. 如何将自定义用户界面添加到销售队伍
- 24. 将用户界面添加到图像查看器插件
- 25. 将按钮添加到动态通知界面
- 26. 将TabularInline添加到我的管理界面
- 27. 图形用户界面将acrofields添加到现有的pdf
- 28. 将菜单选项添加到SMS界面
- 29. 将材料用户界面添加到React组件
- 30. Aurelia路由:将视图添加到选项卡式界面
将代表添加到您的合同/接口是一个糟糕的设计。 – 2012-03-19 14:38:11
@KirillPolishchuk你能解释/证明吗? – anatol 2017-12-01 04:56:12