← C#

LESSON / ARTICLE

スコープと変数の有効範囲

ローカル変数のスコープと、変数を利用できる範囲を理解します。

スコープとは

スコープは、変数や名前を参照できる範囲です。C#では、ブロックやメソッドなどの構造によって名前の有効範囲が決まります。

static void Main()
{
    int total = 0;

    for (int i = 0; i < 3; i++)
    {
        total += i;
    }

    Console.WriteLine(total);
}

totalはMainのブロック内で利用できます。一方、iはfor文の初期化部分で宣言されているため、for文の外からは参照できません。

変数の寿命とスコープ

スコープは「どこから名前を使えるか」を表します。変数の寿命は「値を保持する期間」に関係します。両者は関連しますが、同じ意味ではありません。

名前の衝突を避ける

同じ名前を広い範囲で使い回すと、値の意味を追いにくくなります。必要な場所に近い位置で変数を宣言し、役割が分かる名前を付けましょう。

メソッドで分ける

処理を小さなメソッドへ分割すると、変数を必要な範囲だけに閉じ込められます。これは読みやすさだけでなく、誤った値の再利用を防ぐことにもつながります。