C# の 変数の有効範囲の説明
変数の有効範囲のことをスコープ(scope)といいます。
ローカル変数
static void Main(string[] args) { int a = 10; // ローカル変数 { int b = 20; // ローカル変数 Console.WriteLine(a); Console.WriteLine(b); } Console.WriteLine(a); Console.WriteLine(b); // エラー }
メソッド内で宣言した変数のことをローカル変数といい。ローカル変数の有効範囲は 宣言した ブロック内です。
{ int a; { int a; // エラー } }
宣言したブロック内、またはブロック内にあるブロック内で 同じ名前の 変数を宣言することはできません。
{ int a; } { int a; // OK }
this
フィールドとローカル変数は同じ名前を付けることができます。ローカル変数と同じ名前のフィールドを参照する時は変数の前に「this」を付けます。
class scope { int zoom = 1; // フィールド public void printzoom() { int zoom = 2; // ローカル変数 Console.WriteLine(zoom); // 2 : ローカル変数 Console.WriteLine(this.zoom); // 1 : フィールド } }