コンストラクタ

スポンサーリンク

コンストラクタ

コンストラクタ (constructor) は,クラスのインスタンス化の際に呼び出されるメソッドです。
クラス名と同じ名前で定義され,返り値はありません (void すら書きません)。

using System;

class Clock
{
    public int Hour;
    public int Minute;

    // コンストラクタ
    public Clock(int h, int m)
    {
        Hour = h;
        Minute = m;
    }
}

class Program
{
    static void Main()
    {
        Clock clock = new Clock(6, 30);
    }
}

自前のコンストラクタを定義すると,引数なしのコンストラクタ (デフォルトコンストラクタ) は暗黙的に定義されません。
引数を持つコンストラクタに対しては,new Clock(6, 30) のように対応する引数を与えます。

別のコンストラクタの呼び出し

オーバーロードされたコンストラクタは,次のように : this(...) で呼び出せます。

class Class1
{
    public Class1(int a, int b)
    { ... }

    public Class1(int a)
        : this(a, 0)    // 別のコンストラクタを呼び出し
    { ... }
}

基底クラスのコンストラクタが引数を持つ場合,次のように : base(...) で呼び出すことができます。

class Class1
{
    public Class1(int a, int b)
        : base(a, b)    // 基底クラスのコンストラクタを呼び出し
    { ... }
}

デストラクタ

C# におけるデストラクタは,一般にファイナライザと呼ばれるもので,ガーベジコレクタにより呼び出されます。
デストラクタはプログラム実行中に必ず呼び出されるという保証はないため,ファイルのクローズ処理など必ず実行する必要のある処理をここに書くべきではないことに注意します。

class Class1
{
    // デストラクタ
    ~Class1()
    {
        // 後始末の処理
    }
}
スポンサーリンク