首页 > 代码库 > C# 接口中能否定义字段?

C# 接口中能否定义字段?

答案是不能。 语法上不允许。 也不符合接口的目标。 接口可以看成是对实现的约束, 而字段是实现细节。 接口对外部暴露时, 不应该暴露实现细节。 

从 C# 的语言实现来看, 接口可以看成是一组方法槽。 实现接口的类向这些槽中填充接口方法的引用, Interface.Method()。  

既然接口是一组保存方法引用的集合,那么属性的 get, set 方法, 索引的 get, set 方法, 还有事件的 add, remove 方法都可以放到接口中定义。 但是字段不是一个方法, 接口中没有用于保存字段引用的槽位, 因此字段不能定义在接口中。 

C# 接口中能否定义字段?