这个问题已经在这里有一个答案:
- 如何使财产保护,并且在C#内部? 7个回答
在C#中的公共类是有办法让同一个组件内的场/只派生类的使用方法?
从我的理解protected internal
在C#中的含义一样protected
或 internal
(即访问来自同一装配派生类或类),这不是我所需要的。
这个问题已经在这里有一个答案:
在C#中的公共类是有办法让同一个组件内的场/只派生类的使用方法?
从我的理解protected internal
在C#中的含义一样protected
或 internal
(即访问来自同一装配派生类或类),这不是我所需要的。
如果你删除的“内部”只有场/公众类的方法,以一个内部类。 然后,所有在组装类的可以从内部类派生:
public abstract class MyClass
{
public string Name { get; set; }
}
// Only classes in this assembly can derive from this class
internal abstract class InternalClass : MyClass
{
protected string Other { get; set; }
}
您不能防止从外部装配一个类从编译到它的调用,但你可以强制异常在运行时,如果他们通过把这个属性的保护部件上做的发生:
[System.Security.Permissions.StrongNameIdentityPermission(
System.Security.Permissions.SecurityAction.LinkDemand,
PublicKey = "...<Your assembly's full public key>...")]
如果类是internal
,不会有任何的方式来子分类的组件外部。 使字段/法protected
,你是好去。
如果类必须是public
,使用internal
随处可见子类的组件中。