具有内部 set 和 protected get 的属性

Xwi*_*arg 2 c#

我想这样做一个变量(我们称之为 Foo),它只能在程序集中修改,但可以被任何子类访问,甚至在程序集之外所以我想要一个内部集和一个受保护的 get:

这样做protected int Foo { internal set; get; }告诉我这个集合必须比属性或索引器更具限制性但是internal int Foo { set; protected get; }告诉我同样的事情对于 get

我该如何解决?

Dan*_*ite 5

您可以创建一个内部方法(或代理属性)来调用 set 。

protected int Foo { private set; get; }

internal void SetFoo(int foo)
{
    Foo = foo;
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以将 setter 设置Fooprivate

请注意,这允许您的程序集中任何引用此对象的内容都可以调用SetFoo,这可能不是您想要的。