我有一个简单的上下文类定义:
namespace PowerSupply.Persistance.Facade
{
class PowerSupplyDBContext : DbContext
{
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
}
}
}
的体内没有任何东西
public PowerSupplyDBContext() : base("PowerSupplyDatabase")
{
此空构造函数的用途是什么。这个空的构造函数如何工作?
答案 0 :(得分:2)
它调用基类的构造函数。因此它不是空的。它只是没有添加新的东西。
使用“空”构造函数的原因很多。
您可能没有任何新属性,或者在其他地方实例化了这些属性(我不推荐)
您可能只想添加功能(新方法),以便扩展类,并使用基类的属性和方法实现新方法。因此,您不需要构造函数执行与基类相对的新操作。
或者它具有许多构造函数,并且在需要使用类的有限功能或默认值的情况下使用空构造函数。
答案 1 :(得分:2)
最佳做法是,在任何可能由第三方/其他项目/在编译器无法捕获该类更改的地方使用的类中包含空构造函数。
如果您省略了空的构造函数,并且该类由第三方或您的另一个项目/应用程序使用,则您以后将无法更改该类以包含带有参数的构造函数。否则,该类以前不依赖于传递构造函数参数的所有用法都会中断,因为它们将没有空构造函数可供引用。