C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#で子クラスから基底クラスのコンストラクターを明示的に呼び出す方法

概要

C#では、thisキーワードを使用することで、同じクラス内の別のコンストラクターを呼び出すことができます。一方、親クラス(基底クラス)側に存在するコンストラクターを呼び出したい場合は、baseキーワードを使用します。

基底クラスのコンストラクターを明示的に呼び出すには、派生クラスのコンストラクター宣言の後ろに「: base(引数)」を付けて呼び出します。以下のコードでは、派生クラス「Demo」のコンストラクターから、基底クラス「DemoBase」のコンストラクターを引数付きで呼び出しています。

class DemoBase{
    public DemoBase(int firstNumber, int secondNumber, int thirdNumber){
        System.Console.WriteLine("Base class Constructor");
        System.Console.WriteLine($"{firstNumber} {secondNumber} {thirdNumber}");
    }
}
class Demo : DemoBase{
    public Demo(int firstNumber, int secondNumber, int thirdNumber) : base(firstNumber, secondNumber, thirdNumber){
        System.Console.WriteLine("Derived class Constructor");
        System.Console.WriteLine($"{firstNumber} {secondNumber} {thirdNumber}");
    }
}
class Program{
    static void Main(){
        Demo obj = new Demo(1, 2, 3);
        Console.ReadLine();
    }
}

出力結果

Base class Constructor
1 2 3
Derived class Constructor
1 2 3

解説

出力結果に注目すると、「Base class Constructor」が先に表示され、その後に「Derived class Constructor」が表示されていることがわかります。これは、C#ではオブジェクト生成時に基底クラスのコンストラクターが派生クラスのコンストラクターよりも先に実行されるという仕様によるものです。

このように base キーワードを使えば、基底クラスのコンストラクターへ任意の引数を渡して初期化処理を委譲できるため、継承関係にあるクラス間で初期化ロジックを適切に分担させることができます。なお、同じクラス内の別コンストラクターを呼び出す場合は、同様の構文で this キーワードを使用します。

  1. JavaScriptで要素からクラス名を削除する方法【classList.remove()の使い方】

    JavaScriptでHTML要素からクラス名(className)を削除するには、classList.remove()メソッドを使うのが最もシンプルで確実な方法です。このメソッドを使えば、対象の要素から指定したクラスを動的に取り除くことができ、ボタンのクリックなどユーザーの操作に応じてスタイルを切り替える際に非常に便利です。 サンプルコード 以下は、「Remove Class」ボタンをクリックすると、DIV要素からクラス名が削除される例です。 <!DOCTYPE html> <html> <head> <meta name="viewpor

  2. Macから電話をかける・受ける方法|iPhoneとの連携設定を徹底解説

    iPhoneをお持ちなら、Macでも電話の発着信が可能です。通話はiPhoneを経由して行われるため、相手にはいつもと同じ電話番号で表示され、Macで話していることには気づかれません。 この記事では、Macで電話を発着信できるようにする設定方法を解説します。設定を済ませておけば、iPhoneが家の別の部屋で鳴っていても、カバンの奥にしまわれたままでも、Macに通知が表示され、そのまま応答できるようになります。 また、ちょっとした用件で電話をかけたいときも、わざわざiPhoneを取り出す必要はありません。Macから直接発信できます。 通話はあくまでiPhone経由で行われるため、通話時間は通常ど