我对财产访问者有点困惑.
我想要一个内部属性,其set访问器只能被派生类访问.
这样的事情
internal [internalClass] MyProperty
{
get {return _prop;}
protected set {_prop = value;}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,编译器抱怨.
MSDN在讨论此特定错误时建议将set访问修饰符更改为private
这不是我想要的地方.
它看起来Protected Internal应该是一个选项,但是使用此修饰符会产生相同的错误
我有一种感觉,我缺少对访问修饰符的一些基本理解.
谢谢
Jon*_*eet 10
既不是protected也不protected internal是更严格的限制internal.两者都允许来自不同程序集的派生类型访问setter但不访问getter.protected internal给对工会的protected和internal,而不是交集.(有一个访问级别表示CLR中的交集,但它不会被C#公开.)
您可能最好使用私有的setter和一个SetMyProperty仅调用私有setter的受保护方法,如果它与您想要实现的匹配.