为什么编译器不喜欢我在类接口中声明一个公共方法(这导致了我在这里遇到的错误.NET Class Interface, Inheritance and Library: error does not implement interface member)。
是因为语法还是因为更基本的东西?
好吧,这是隐含的,但为什么要明确它会有什么不妥?
答案 0 :(得分:41)
Interface是一个契约,在任何可以访问界面的地方,您都应该能够访问其中的所有方法。换句话说,接口中声明的所有方法都应该是公共的,因此明确说明它是没有意义的。
答案 1 :(得分:7)
接口方法是隐式公开的,因此声明它们是公开的。
答案 2 :(得分:3)
认为这是常数,我认为这是语言设计师在考虑为什么不在接口中允许Public的原因。
答案 3 :(得分:1)
您不能在界面中使用任何访问修饰符(例如私有,部分)。这是因为实现类负责标记方法的可访问性。它保持接口单一的目的,即定义类的签名,而不是定义其访问限制。
答案 4 :(得分:0)
由于C#8有所不同。现在允许使用public
修饰符。我建议阅读this article。