我有一个类ClassA
这是其他类的基类。我希望这个类的构造函数是内部的并且是受保护的,所以它不能从我的程序集外部继承和实例化(我不能将它封闭起来,因为我有其他内部类继承它,你可以看到我的其他相关问题here),所以我修改了它是这样的:受保护的内部构造函数
public abstract ClassA{
internal protected ClassA(){
}
}
我已被告知,由于组合internal protected
被解释为internal
OR protected
这显然使得构造只有protected
:((从可见这是不行的外面)
问题
- 如果是真的,为什么
internal protected
解释为internal
ORprotected
而不是internal
和protected
? - 有没有办法可以声明一个构造函数的内部和保护?
其实,这是不正确的。在大会之外,“保护”修改器仍在发挥作用。如果仅将空构造函数声明为“内部”,则可以继承该程序集外的类,但不能向其中添加自定义构造函数。如果你让它成为“受保护的内部”,那么你可以。 – RobinHood70
@ RobinHood70我只是回答了他的具体查询。在一般情况下,你是对的。 – Asti