【问题标题】:Is the usage of base() meaningful?base() 的使用有意义吗?
【发布时间】:2015-09-14 02:40:59
【问题描述】:

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

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

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

【问题讨论】:

  • @raymelfrancisco:请不要在标题中添加语言名称。由于标签的存在,它们不是必需的。我已批准并改进了您的编辑,只是因为您进行了其他更改:)
  • @Harry 好的,我会注意的。谢谢!
  • 这里没用,但如果你想调用另一个构造函数。例如带有两个参数的构造函数然后base 很有用。例如:base(name, age)
  • 就我个人而言,如果显式调用程序流程,我发现它更容易遵循,但正如其他人所说,在这种情况下不需要它

标签: c# parameters constructor base


【解决方案1】:

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

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

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

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

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

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

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2016-10-19
    • 2011-10-04
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 2013-04-28
    • 1970-01-01
    相关资源
    最近更新 更多