Bra*_*ith 6 c# properties access-modifiers
我遇到了一个对我来说没有意义的编译器错误.我有一个internal属性,我想限制它的set块,使它只能通过继承.我认为这会奏效:
internal bool MyProperty {
get { return someValue; }
protected internal set { someValue = value; }
}
Run Code Online (Sandbox Code Playgroud)
但编译器说set块上的访问修饰符需要比internal- 我错过了什么,或者protected internal 不是更严格的限制internal?
protected internal是较少限制性的; 它受保护或内部(不是和) - 因此另外允许来自其他程序集的子类访问它.您需要反转:
protected internal bool MyProperty {
get { return someValue; }
internal set { someValue = value; }
}
Run Code Online (Sandbox Code Playgroud)
这将允许程序集中的代码以及其他程序集中的子类获取(读取) - 但只有程序集中的代码才能设置它(写入).
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |