pyo*_*yon 2 c# access-modifiers
我需要声明一个受保护和内部的成员.然而,就我完全的困惑而言,我刚刚发现"受保护的内部"实际上意味着受保护的OR内部的困难方式.是否有任何访问修饰符意味着受保护的AND内部?
虽然CLR支持它,但在C#中没有办法强制成员受保护和内部.
C#和VB.NET都使用联合而不是交集来组合访问修饰符.
如果你必须拥有它,有一个解决方法.它不干净,但它的工作原理.您可以在其上创建一个带有内部属性的辅助类,然后将该内部类类型的受保护属性添加到您的类中.受保护属性的内部属性只能在拥有程序集中的子类上访问.
示例如下.我已经使用了一个泛型,你可能想要多个不同类型的受保护内部属性.泛型将允许您使用一个内部类,而不管所需的属性类型.
public class AccessHelper<T>
{
internal T Value { get; set; }
}
public class AClass
{
public AClass()
{
InternalProperty.Value = "Can't get or set this unless you're a derived class inside this assembly.";
}
protected AccessHelper<String> InternalProperty
{
get;
set;
}
}
Run Code Online (Sandbox Code Playgroud)