我正在努力使定义为internal
的类的属性仅由子项(protected
)生成。
这里有一个清晰的例子:
internal class Foo
{
internal int Bar { get; protected set; }
internal Foo(int bar)
{
this.Bar = bar;
}
internal void Baz()
{
this.Bar++;
}
}
这会导致错误,即Bar
的访问需要比set
- 访问者更具限制性(这是正确的,因为protected
允许访问类在集会之外)。
我在这里唯一的解决方法是将Bar声明为public
,但这不是我实际想要的。我可能需要通过其他方法(甚至可能是孩子)修改Bar
而不是构造函数,因此readonly
对我不起作用。
是否有可能使internal
类internal
的属性可供阅读,internal
和protected
可供写入?
编辑:对不起,我刚才意识到,this question与我的基本相同。我以前没有找到它。