受保护的内部构造函数

GET*_*Tah 3 c# inheritance

我有一个类ClassA是其他类的基类.我希望这个类构造函数是内部的和受保护的,以便它不能从我的程序集外部继承和实例化(我无法使它密封,因为我有其他内部类继承它,你可以看到我的其他相关的问题这里)所以我修改它是这样的:

public abstract ClassA{
    internal protected ClassA(){
    }
}
Run Code Online (Sandbox Code Playgroud)

我被告知这不会起作用,因为组合internal protected被解释为internalOR protected,显然只是构造函数: protected((从外面可见)

问题

  1. 如果这是真的,为什么被internal protected解释为internalOR protected而不是internalAND protected
  2. 有没有办法可以声明构造函数内部和受保护?

Ast*_*sti 6

指定内部就足够了.

它是一个抽象类 - 暗示它的构造函数是受保护的,因为你不能创建它的实例 - 你什么都不做但是继承它.