c# - C# 中抽象类中公共(public)构造函数的效用是什么?

标签 c# constructor abstract-class

如果抽象类中的公共(public)构造函数只能由其派生类调用,那么它在功能上应该等同于 protected 构造函数。对吧?

在抽象类中声明公共(public)构造函数而不是保护构造函数有什么区别吗?你会用它做什么?为什么编译器不提示?

最佳答案

完全正确。您应该支持 protected 构造函数。

编辑:不,编译器不会提示,但像 FxCop(和代码分析)这样的工具会提示。我相信您可以使用抽象类上的公共(public)构造函数执行一些奇怪的反射技巧,但从您只是向其他编写子类的开发人员提供基类功能的角度来看,请坚持使用 protected 构造函数。

关于c# - C# 中抽象类中公共(public)构造函数的效用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1682275/

相关文章:

oop - 您如何向非程序员解释接口(interface)和抽象类之间的区别?

c++ - 具有参数化构造函数的抽象工厂

c# - .NET : How to validate XML file with DTD without DOCTYPE declaration

c# - 什么时候 == 会以与 .equals 不同的方式被覆盖?

java - 如何在 Java 中实现接受不同类型数组作为参数的类构造函数

javascript - 调用基类构造函数而无需手动提供参数

c++使用计算参数调用父类(super class)构造函数

java : advanced inheritance to jpa

c# - KinectRegion HandPointer 光标作为 Awesomium 浏览器中的鼠标光标

c# - 移动应用程序的 1 种语言与 2 种语言之间的差异