枚舉是使用者自訂的實值型別,本質上是一組具名的整數常量。宣告枚舉時,需指定其可接受的實例值集合,讓程式碼更具可讀性與型別安全。
public enum UserRole
{
Guest = 0,
Member = 1,
Admin = 2
}
此處 UserRole 為枚舉型別,Guest、Member、Admin 為其成員,分別對應整數 0、1、2。使用時可直接轉型:
int roleValue = (int)UserRole.Admin; // 輸出 2
枚舉在底層繼承自 System.Enum,因此可呼叫其方法。例如 UserRole.Member.ToString() 會回傳字串 "Member",而非數值,極大提升了除錯與日誌記錄的可讀性。
陣列是儲存相同型別元素的固定大小集合,屬於參考型別,儲存於 managed heap。
// 宣告未初始化
int[] scores;
// 宣告並指定長度 20
int[] scores = new int[20];
// 宣告並直接賦值
string[] names = { "Alice", "Bob", "Charlie" };
注意:所有陣列皆為參考型別,變數儲存的是記憶體位址。本文僅作基礎介紹,進階操作(如多維陣列、陣列排序、與集合互轉)將於後續專文詳細探討。
命名空間是組織型別的邏輯容器,解決大型專案或團隊協作中類別名稱衝突的問題。
namespace CompanyA
{
public class User { public string GetName() => "CompanyA User"; }
}
namespace CompanyB
{
public class User { public string GetName() => "CompanyB User"; }
}
// 使用時以完整名稱區分
var userA = new CompanyA.User();
var userB = new CompanyB.User();
兩個 User 類別同名但隸屬不同命名空間,編譯與執行皆無衝突。
若命名空間層級較深,可用 using 簡化:
using Sys = System; // 別名
using CompanyA; // 直接引入,後續可直接寫 User
慣例上,專案命名空間常採用公司域名倒序(如 Com.CompanyName.Project),確保全域唯一性。