具有内部set和protectedget的属性
c#
我想这样做一个变量(我们称之为 Foo),它只能在程序集中修改,但可以被任何子类访问,甚至在程序集之外所以我想要一个内部集和一个受保护的 get:
这样做protected int Foo { internal set; get; }告诉我这个集合必须比属性或索引器更具限制性但是internal int Foo { set; protected get; }告诉我同样的事情对于 get
我该如何解决?
回答
您可以创建一个内部方法(或代理属性)来调用 set 。
protected int Foo { private set; get; }
internal void SetFoo(int foo)
{
Foo = foo;
}
在这种情况下,您可以将 setter 设置Foo为private。
请注意,这允许您的程序集中任何引用此对象的内容都可以调用SetFoo,这可能不是您想要的。