C# Programming

Image

スタティック コンストラクタ

開発環境: Visual Studio 2003 

目次

  1. 目次
  2. 目的
  3. 参考書
  4. ソースコード
  5. 実行結果
  6. 改定記録

目的

Static constructorは、access modifiers や parameters を持たず、クラスが初期化されるときに自動的に呼ばれます。
ユーザは Static constructor を直接呼び出すことはできない。

Private Constructorsは、Math class のような、コンストラクターを使わないクラスの初期化や、必ずインスタンスが1つだけを保障するために使えます。

注意
通常のコンストラクターと、スタティックコンストラクターを両方宣言することは可能ですが、コンストラクターの起動順序に依存するような書き方をしてしまうと第3者の可読性が下がり、バグの原因になるので避けたほうが良いです。

参考書

(1) MSDN System.TimeZoneクラス

スタティックコンストラクタのテスト用ソースコード

using System;

class StaticConstructor
{
        // Static constructor
        static StaticConstructor() 
        {
                Console.WriteLine("StaticConstructorが呼び出されました。");
        }

        public static void Test()
        {
                Console.WriteLine("Testメソッドが呼び出されました。");
        }
}

class MainClass
{
        static void Main() 
        {
                Console.WriteLine("StaticConstructor.Test()を呼び出します。");
                // オブジェクトを生成せずに、メソッドを呼び出す。
                StaticConstructor.Test();
        }
}

実行結果

StaticConstructor.Test()を呼び出します。
StaticConstructorが呼び出されました。
Testメソッドが呼び出されました。

改定記録


日付コメント
2004/5/23全体デザイン再構成
2002/3/4初版作成