c#interface public private

时间:2014-07-30 09:50:48

标签: c# interface

有人可以解释如何强制将互联网实施为私人或公共。通常在我定义接口时,每个方法/属性都是公共的。在示例中,使用" 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();
    }
}

谢谢!

1 个答案:

答案 0 :(得分:3)

私有成员作为接口的一部分毫无意义,因为接口中定义的所有方法都是公共的。接口用于定义一组方法,一个角色,一个对象必须始终实现。

私有方法只是实现细节,不适合公共使用。

根据MSDN

  

CLR还允许接口包含静态方法静态   字段,常量和静态构造函数。但是,符合CLS   一些接口不能有任何这些静态成员   编程语言无法定义或访问它们。事实上,   C#阻止接口定义任何静态成员。在   此外,CLR不允许接口包含任何实例   字段或实例构造函数。

有关详情,请参阅: - C# Interfaces. Implicit implementation versus Explicit implementation