6

System.ServiceProcess.ServiceBase类构造函数的 Microsoft .NET 文档说:

如果重写基类构造函数,则应在派生类的构造函数中显式调用它。

在Microsoft C# Programming Guide 中的Using Constructors中,它说:

在派生类中,如果未使用 base 关键字显式调用基类构造函数,则隐式调用默认构造函数(如果有)。

那么我是否需要显式调用基本构造函数,为什么?

4

1 回答 1

5

没关系。这些编译为相同的 IL:

public class Service1 : ServiceBase
{
    public Service1() : base() { }
}
public class Service1 : ServiceBase
{
    public Service1() { }
}

我不知道为什么ServiceBase建议明确调用它。我会接受另一个建议,因为它似乎更有意义。

于 2012-07-02T19:49:18.110 回答