C#ローカル変数の初期化ルールとエラーの原因

はじめに

C#では、ローカル変数を使用する前に必ず初期化しなければならないというルールがあります。これは安全なプログラミングのための仕様です。


宣言と初期化の違い

int age;         // 宣言(この時点では中身は未定)
age = 23;        // 初期化(ここで値を設定)

✅ このコードはエラーになりません

ageに値が代入されたあとに使用されるためです。


エラーになる例

int age;         
int a = age + 23; // ❌ コンパイルエラー

🔴 このコードはエラーになります。

  • age は宣言されただけで、まだ初期化されていない
  • C#では、未初期化のローカル変数を使うことは許されていない

初期化を行えばOK

以下のように、ageを使う前に値を代入(初期化)すればエラーは解消されます。

int age = 23;
int a = age + 23; // ✅ OK

または、分けても問題ありません:

int age;
age = 23;
int a = age + 23; // ✅ OK

C#のルール(補足)

  • グローバル変数やフィールドは自動的に初期化されます(例:0やnull)。
  • ローカル変数は自動初期化されないため、自分で必ず初期化しなければなりません。

よくある誤解

コード結果解説
int x; x = 5;OK使用前に代入されている
int x; int y = x + 2;エラーxが未初期化
int x = 0; int y = x + 2;OKxが初期化済み

まとめ

  • ローカル変数は使う前に必ず初期化が必要。
  • コンパイラは未初期化の使用をエラーで防止してくれる。
  • これは、バグの予防と安全性のために重要なルールです。

訪問数 3 回, 今日の訪問数 3回

C#

Posted by hidepon