在抽象类中保护内部构造函数

时间:2013-11-02 17:00:39

标签: .net oop constructor abstract-class msdn

来自MSDN:Abstract Class Design

  

X不要抽象地定义公共或受保护的内部构造函数   类型。

     

√用抽象的方式定义受保护或内部构造函数   类。

这里有矛盾吗?或者它是否意味着构造函数应该是受保护的还是内部的,但不是同时保护和内部的?

1 个答案:

答案 0 :(得分:2)

是的,它确实意味着构造函数不应该同时受到保护和内部,但是受保护或内部都可以。受保护的(和)内部与公共一样具有误导性,因为抽象类的构造函数只能从继承者中调用 单个受保护或内部有所不同,因为它们允许不同范围的继承者(内部只允许来自当前程序集的继承者,受保护允许任何继承者)。但是公共扩展了抽象类可以提供的范围的可访问性。受保护的内部只为受抽象的类保护。这就是他们误导的原因。