WisdomSoft - for your serial experiences.

変数の初期化

 初期化されていないローカル変数を読み取るとコンパイルエラーとなります。ローカル変数の初期化について説明します。

宣言と同時に初期化する

注意しなければならないのですが、ローカル変数を宣言した時、変数は読み取られる前に必ず初期化していなければなりません。初期化とは、変数を宣言してから最初に値を代入することを指しますが、これが行われていなければコンパイルすることができないのでエラーになります。

図1 初期化されていないローカル変数
初期化されていないローカル変数

図1のコードは、変数の宣言後に何も初期化することなく出力しようとしています。しかし変数は初期化されていないので、変数の本来の目的から考えて、このコードは不正であることが確実です。したがって C# コンパイラはエラーを発生させます。

これを防ぐ最良の手段は変数の宣言後に初期化するということです。宣言後に代入演算子で値を代入してもよいのですが、変数宣言時に初期値が決まっているのであれば、変数を宣言と同時に初期化することもできます。

ローカル変数初期化子
 変数名 = 

変数宣言と同時に初期化するには、上記のように変数名に続いて = 記号に続いて初期値となる式を指定します。変数宣言文における、上記の = 記号から式までの部分は、前述した代入演算子ではありません。正確にはローカル変数初期化子(Local variable declarator)と呼びます。構文上は別の扱いになりますが、変数に右項の値を保存するという意味では同じです。

コード1
class Test
{
    static void Main()
    {
        string str = "Stand by Ready";
        System.Console.WriteLine(str);
    }
}
実行結果
コード1 実行結果

最初に初期化するべき値が決定されているのならば、このように初期化するべきでしょう。単に行数が短くなりコードが読みやすくなるだけではなく、初期化忘れによる予期しないエラーを防ぐことができます。