这对 "override" ServiceBase 的负责人意味着什么?

What does it mean to "override" the ctor of ServiceBase?

我最近开始使用 winservices,我偶然发现 this link 关于 winservice ctor 并且它谈到 "overriding" ServiceBase 构造函数。 感觉很愚蠢,我在谷歌上搜索了这意味着什么,然后偶然发现了 this。 问题:他们 实际上 在文档中说 "overriding" 是什么意思?要明确地链接回 ServiceBase ctor?

MS 只是声明如果您从 ServiceBase 派生(像这样),您应该调用基本构造函数

class MyService:ServiceBase
public MyService : base() {
.. custom code ..
}

除了您的新 .ctor 之外,这还将调用基本构造函数。 在这里查看 "overriding" .ctor: C# - Making all derived classes call the base class constructor

我不太同意MS所说的。 ServiceBase 有一个空的默认构造函数,它会自动被调用,所以你必须覆盖它的语句(这也不是真的,我会 overloading 而不是 overriding) 不是真的。 然而,我猜测他们的意思是像这样调用基础构造函数

public class MyService : ServiceBase {
    public MyService(var something) : base(){

    }
}

相同
public class MyService : ServiceBase {
    public MyService(var something){

    }
}

/edit:理论上,如果您要重载(而不是覆盖)基本构造函数,则必须显式调用它。

public class ServiceBase{
    public ServiceBase(){

    }

    public ServiceBase(var something) {

    }
}
public class MyService : ServiceBase {
    public MyService(var something)
        : base(something) 
    {

    }
}

但是,无法重载 ServiceBase 构造函数,因为 class 未标记为 partial