c#中的继承变量

Cra*_*ith 0 c# inheritance

只是为了练习我正在尝试编写一个计算器程序.为了使我很难尝试使用我学到的一些高级继承主题,但没有真正使用过.假设您有一个以IMath一种方法命名的接口string DoMath().是否有可能在IMath接口中编写一个变量,实现该接口的所有类都会看到新的值?因此,例如我的类Add : IMath将具有该方法,DoMath()并且在该DoMath()方法中将更改变量的值double ITotal,所有实现IMath接口的类将看到新值.

ang*_*son 5

您不能在接口中指定变量或字段,您只能指定:

  • 方法
  • 属性
  • 索引
  • 活动

有关此内容的详细信息,请参阅接口上的C#文档.

接口决定了预期的行为,它没有规定预期的实现.属性可以被理解为"检索X值的能力"或"提供X值的能力",其中变量是"存储X的能力".这不是一回事,接口无法保证.

如果您绝对需要强制执行变量,则应使用基类.我可能会考虑组合这些东西,使用外部接口的接口(即我的计算器应该如何工作)和基类和继承来避免反复重写相同的代码.