实现IEnumerable 和IEnumerable.GetEnumerator()不能公开,为什么?

要实现接口成员,实现类的相应成员必须是公共的。 source: 接口(C#编程指南)

我知道它是私有的,但我想知道它为什么不公开?

必须是私有接口成员实现

显式实现时,默认情况下接口方法是公共的,这就是您不能使用访问修饰符的原因。

来自msdn.com的报价:

当显式实现成员时,不能通过类实例访问它,而只能通过接口的实例(默认情况下是公共的)访问它

来源: https : //msdn.microsoft.com/en-us/library/aa288461%28v=vs.71%29.aspx

PS隐式和显式实现之间的区别:

 interface MyInterface { void MyMethod(); } class A : MyInterface // Implicit implementation { public void MyMethod () { ... } } class B: MyInterface // Explicit implementation { void MyInterface.MyMethod () { ... } }