c# 接口 公共 私有
C#中的接口(interface)是用来定义一组方法,一个对象必须实现这些方法。接口中的所有方法都是公共的(public),而私有的(private)成员在接口中是没有意义的。私有方法只是实现的细节,不适合公共使用。
根据MSDN的说明:
CLR(公共语言运行时)允许接口包含静态方法、静态字段、常量和静态构造函数。然而,符合CLS(公共语言规范)的接口不能有这些静态成员,因为有些编程语言无法定义或访问它们。实际上,C#禁止接口定义任何静态成员。此外,CLR不允许接口包含任何实例字段或实例构造函数。
具体详情可以参考:C# Interfaces. Implicit implementation versus Explicit implementation
根据上述信息可知,C#中接口中只能定义公共的方法,而不能定义私有的方法。这是因为接口是用来定义对象必须实现的公共方法,私有方法只是实现细节,不应该对外公开。此外,接口也不能包含静态成员、实例字段和实例构造函数。
因此,如果在C#中定义接口时使用了私有方法,编译会报错。解决方法是将私有方法改为公共方法。
以下是一个示例代码,展示了如何定义一个合法的接口:
public interface IExampleInterface { void Method1(); // 公共方法 void Method2(); // 公共方法 }