有人可以解释如何强制将互联网实施为私人或公共。通常在我定义接口时,每个方法/属性都是公共的。在示例中,使用" IEnumerable"产生一个公共方法" GetEnumerator()"但使用界面" IEnumerable"方法" IEnumerable.GetEnumerator()"默认是私人的。
public class customEnumerable<T> : IEnumerable<T>, IEnumerable
{
public IEnumerator<T> GetEnumerator()
{
throw new NotImplementedException();
}
IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
throw new NotImplementedException();
}
}
谢谢!
答案 0 :(得分:3)
私有成员作为接口的一部分毫无意义,因为接口中定义的所有方法都是公共的。接口用于定义一组方法,一个角色,一个对象必须始终实现。
私有方法只是实现细节,不适合公共使用。
根据MSDN
CLR还允许接口包含静态方法静态 字段,常量和静态构造函数。但是,符合CLS 一些接口不能有任何这些静态成员 编程语言无法定义或访问它们。事实上, C#阻止接口定义任何静态成员。在 此外,CLR不允许接口包含任何实例 字段或实例构造函数。
有关详情,请参阅: - C# Interfaces. Implicit implementation versus Explicit implementation