方法內宣告的變數,從宣告行起至方法結束大括號為其作用域。方法結束即銷毀,無法跨方法存取:
class Example
{
void FirstMethod()
{
int myVar = 10; // 僅 FirstMethod 可見
}
void AnotherMethod()
{
myVar = 42; // 編譯錯誤:myVar 不在作用域內
}
}
類別主體 (非方法內) 宣告的變數稱為欄位,具類別作用域,**所有方法皆可存取**,可作為跨方法共享資料:
class Example
{
int myField = 0; // 類別作用域
void FirstMethod() { myField = 42; } // OK
void AnotherMethod() { myField = 99; } // OK
}
欄位可在宣告前被方法使用 (編譯器自動處理);區域變數必須先宣告後使用。
同一作用域 (通常為同一類別) 內,**方法名稱相同但參數清單不同 (數量、類型、順序)** 即構成多載。編譯器依實引數型別/數量解析呼叫哪個版本:
Console.WriteLine("Hello"); // 無參數
Console.WriteLine(42); // int
Console.WriteLine(3.14); // double
Console.WriteLine(true); // bool
// ... 共 19 個多載版本
當需對不同資料型別執行相同語意操作 (如輸出、比較、計算) 時,善用多載提供統一介面,降低記憶負擔並提高程式碼可讀性。