6

System.ServiceProcess.ServiceBaseクラス コンストラクターに関する Microsoft .NET ドキュメントには、次のように記載されています。

基本クラスのコンストラクターをオーバーライドする場合は、派生クラスのコンストラクターで明示的に呼び出す必要があります。

Microsoft C# プログラミング ガイドのコンストラクターの使用では、次のように述べています。

派生クラスでは、基本クラスのコンストラクターが 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 に答える