是不是破坏了c#界面的设计原则?

Sye*_*yed 4 c# interface

当我用谷歌搜索有关界面的相关主题时,我从MSDN网站上找到了这个:

例如,接口可能声明具有get访问器的属性.实现接口的类可以使用get和set访问器声明相同的属性. 来自MSDN

现在我有一个疑问.当我们特别提到该属性应该只读时(在接口中只有'get'访问者)为什么它也允许实现'set'访问器?

Ree*_*sey 12

现在我有一个疑问.当我们特别提到该属性应该只读时(在接口中只有'get'访问者)为什么它也允许实现'set'访问器?

有一点不同 - 当您使用接口时,您不是"指定该属性应该只读",而是指定合同定义该特定名称和类型的"可读属性".基本上,界面定义了合同的最低要求,而不是绝对要求.

如果将对象强制转换为特定接口,则属性设置器将不可用.它与在对象上具有通过接口不可用的额外属性或方法没有什么不同.