在C#中,以下代码有效
interface I{
int property{get;set;}
}
这对我来说毫无意义。这似乎打破了接口最重要的原则之一:缺少状态(换句话说,没有字段)。该属性是否不会创建隐式私有字段?这对接口真的不好吗?
12
缺乏状态是接口实现的原理之一吗?对我而言,接口是定义合同的一种方式,即,如果一个类实现了这样的接口,则它具有合同中定义的所有方法和属性。
—
Florian Margaine 2014年
属性只是get方法和set方法。因为接口只是您必须实现的方法的列表,所以接口可以自然地拥有它们。
—
Doval
@FlorianMargaine当然,合同的概念是最重要的接口原理,但是缺少状态也很重要。这有助于将其与抽象类分开。Java 8中的IE最终是接口和抽象类之间的唯一主要区别。
—
恢复莫妮卡2014年
因为它不是一个领域。请参见为什么C#接口不能包含字段?
@Doval:很自然的,一个接口声明了这样的方法,但是并没有实现它们。
—
Giorgio