C# 変数のスコープ
C# では、変数のスコープは変数の可視性とライフサイクルを定義します。
変数のスコープは通常、中括弧{}で定義されるコードブロックによって決定されます。
以下は、C# の変数スコープに関する基本的なルールです。
局部变量
メソッド、ループ、条件文などのコードブロック内で宣言された変数はローカル変数であり、宣言されたコードブロック内でのみ可視です。
实例
void MyMethod()
{
int localVar = 10; // 局部变量
// ...
}
// localVar はここでは見えない
{
int localVar = 10; // 局部变量
// ...
}
// localVar はここでは見えない
块级作用域
C# 7 以降では、ブロックスコープが導入されました。つまり、中括弧{}を使用して作成された任意のブロックが変数のスコープを定義できます。
实例
{
int blockVar = 20; // 块级作用域
// ...
}
// blockVar はここでは見えない
int blockVar = 20; // 块级作用域
// ...
}
// blockVar はここでは見えない
メソッドパラメータのスコープ
メソッドのパラメータにも独自のスコープがあり、メソッド全体で可視です。
实例
void MyMethod(int parameter)
{
// parameter はメソッド全体で参照可能
// ...
}
{
// parameter はメソッド全体で参照可能
// ...
}
全局变量
クラスのメンバーレベルで定義された変数はメンバー変数であり、クラス全体で可視です。名前空間レベルで定義された場合、それらは名前空間全体で可視です。
实例
class MyClass
{
int memberVar = 30; // メンバー変数、クラス全体からアクセス可能
}
{
int memberVar = 30; // メンバー変数、クラス全体からアクセス可能
}
静的変数のスコープ
静的変数はクラスレベルで宣言されますが、そのスコープも定義されたクラスに限定されます。
实例
class MyClass
{
static int staticVar = 40; // 静的変数、クラス全体からアクセス可能
}
{
static int staticVar = 40; // 静的変数、クラス全体からアクセス可能
}
ループ変数のスコープ
for ループ内で宣言されたループ変数は、ループ本体内で可視です。
。实例
for (int i = 0; i < 5; i++)
{
// i はループ本体内で参照可能です
}
// i はここでは見えない
{
// i はループ本体内で参照可能です
}
// i はここでは見えない
全体として、変数のスコープは変数の可視性とライフサイクルを管理するのに役立ち、変数が有効な範囲内で使用されることを保証し、名前の衝突を防ぐのにも役立ちます。
其他扩展