作用域定義了識別碼(變數、方法、類別)在程式碼中可被存取的區域。變數從宣告處開始生效,超出作用域即銷毀無法存取。
方法主體的大括號 `{}` 界定區域作用域。方法內宣告的變數為區域變數,僅限該方法內部存取,方法結束即銷毀。無法跨方法共享區域變數:
class Example
{
void FirstMethod()
{
int myVar = 10; // 區域變數
}
void AnotherMethod()
{
myVar = 42; // 編譯錯誤:myVar 不在作用域內
}
}
類別主體大括號內、方法外部宣告的變數稱為欄位,具備類別作用域,可被類別內所有方法存取,實現資料共享:
class Example
{
int myField = 0; // 欄位
void FirstMethod() { myField = 42; } // OK
void AnotherMethod() { myField = 99; } // OK
}
關鍵差異: 區域變數必須「先宣告後使用」;欄位則允許在宣告語句之前被方法使用(編譯器會自動處理)。
同一作用域內,若有多個同名方法但參數列表不同(參數個數、型別或順序),即構成多載。編譯器依實參型別自動綁定對應版本:
Console.WriteLine("答案:"); // 呼叫 WriteLine(string)
Console.WriteLine(42); // 呼叫 WriteLine(int)
Console.WriteLine(true); // 呼叫 WriteLine(bool)
Console.WriteLine 內建 19 個多載版本,涵蓋各種基本型別與物件。
當需要對不同資料型別執行相同邏輯操作時,善用多載可提升 API 易用性,避免命名如 PrintInt、PrintString 等冗長方法名。