Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
来自 MSDN:抽象类设计:
X 不要在抽象类型中定义公共或受保护的内部构造函数。 √ 在抽象类中定义一个受保护的或内部的构造函数。
X 不要在抽象类型中定义公共或受保护的内部构造函数。
√ 在抽象类中定义一个受保护的或内部的构造函数。
这里有矛盾吗?或者这是否意味着构造函数应该是或受保护的或内部的,但不能同时是受保护的和内部的?
是的,这确实意味着构造函数不应同时受保护和内部,但受保护或内部都可以。受保护(和)内部与公共一样具有误导性,因为抽象类的构造函数只能从继承者调用。 单个受保护或内部会有所不同,因为它们允许不同范围的继承者(内部仅允许来自当前程序集的继承者,受保护允许任何继承者)。但是 public 将可访问性扩展到抽象类本质上可以提供的范围。受保护的内部只是为抽象类做一个受保护的。这就是他们误导的原因。