可能是重复问题:
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 this