从ServiceBase派生时,我是否调用基础构造函数?

时间:2012-07-02 19:43:01

标签: c# .net

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

  

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

在Microsoft C#编程指南的Using Constructors中,它说:

  

在派生类中,如果未调用基类构造函数   显式地使用base关键字,默认构造函数,if   有一个,被暗称。

所以我需要显式或不显式调用基础构造函数,为什么?

1 个答案:

答案 0 :(得分:5)

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

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

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