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; | OK | xが初期化済み |
まとめ
- ローカル変数は使う前に必ず初期化が必要。
- コンパイラは未初期化の使用をエラーで防止してくれる。
- これは、バグの予防と安全性のために重要なルールです。
訪問数 3 回, 今日の訪問数 3回
ディスカッション
コメント一覧
まだ、コメントがありません