base()的用法是否有意义?

时间:2015-06-27 04:21:48

标签: c# parameters constructor base

在阅读我公司的代码时, 我发现下面有一些代码

class Child:Parent
{
    public Child():base()
    {
        //do something
    }
}

我的问题是:base()的使用是否有意义? 在致电Child()之前,我会自动调用base(),我是对的吗? 我的意思是没有参数的构造函数。

1 个答案:

答案 0 :(得分:4)

是的,你是对的!在这种情况下,base()不是必需的,但如果您的父类没有无参数构造函数,则必须这样做。

遵循MSDN文档https://msdn.microsoft.com/en-us/library/ms173115(v=vs.90).aspx

  

在派生类中,如果未调用基类构造函数   显式地使用base关键字,默认构造函数,if   有一个,被称为隐含。   这意味着以下构造函数声明实际上是相同的:

public Manager(int initialdata)
{
    //Add further instructions here.
}

public Manager(int initialdata)
    : base()
{
    //Add further instructions here.
}
  

如果基类不提供默认构造函数,则派生   class必须使用base来显式调用基础构造函数。

希望它有所帮助!