同一方法內外層與迴圈內宣告同名變數 j 會導致編譯錯誤,因外層 j 作用域涵蓋整個 Main(),內層無法重複宣告。
class MyFirstClass {
int j = 30; // 類別欄位(成員變數)
static void Main() {
int j = 20; // 區域變數遮蔽欄位
int i = 5;
Console.WriteLine(i + j); // 輸出 25
}
}
區域變數 j 遮蔽類別欄位 j,輸出 25。
static,宣告時不需加 static 關鍵字。