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 在這裡不可見
總體而言,變數的作用域有助於管理變數的可見性和生命週期,確保變數在其有效範圍內使用,也有助於防止命名衝突。