可能重复:
C# 接口的非公共成员
假设我有
internal interface IInterface
{
int MyProperty { get; set; }
}
public class MyClass : IInterface
{
internal int MyProperty
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
}
我明白了:
不实现接口成员;无法实现接口成员,因为它不是公共的;
我知道解决方法是什么,但我想知道为什么 C# 不让接口成员私有。
很多时候,我希望我的课程遵循一种模式,但不必将成员公开,比如在我编写库时。最重要的是,接口本身不是公开的:X
注意:我不是在问如何实现私有接口成员,但我知道这个决定背后的设计逻辑。我找不到合适的副本。
更新:比原始线程更多,这个来自另一个线程答案的代码示例比大多数描述答案更好地解释了它。甚至更好,来自@JonSkeet