在 C# 程式設計中,列舉(Enum)是一種非常有用的功能,它允許開發者定義一組命名的整數常量,從而使程式碼更加清晰、易於理解和維護。本文將介紹 enum
的使用方式,並透過實務上的使用情境與範例程式碼,讓你更好地理解何時以及如何使用 enum
。
什麼是 Enum?
在 C# 中,enum
或列舉是一種值類型,它由一組具有名稱的整數值組成。每個列舉成員都有一個與之關聯的整數值,預設從 0 開始,每個成員的值依次遞增。當然,你也可以明確指定每個成員的數值。
使用 Enum 的好處
- 提高可讀性:使用具有明確名稱的列舉成員,比起使用魔術數字(magic numbers),可以使程式碼讀起來更加直觀。
- 增強安全性:列舉提供了一種類型安全的方式來處理一組固定的相關值。這意味著你只能使用該列舉定義的值,這樣可以避免不小心使用無效值的錯誤。
- 易於維護:如果你的應用程式中有一組相關的常量值需要經常使用,將它們定義為列舉可以方便日後的管理和修改。
使用情境一:表示狀態
假設你正在開發一個訂單處理系統,訂單有多個狀態,如新建、處理中、已發貨、已完成等。
public enum OrderStatus
{
Unknown = 0
New = 1,
Processing = 2,
Shipped = 3,
Completed = 4,
Cancelled = 5
}
public class Order
{
public int OrderId { get; set; }
public OrderStatus Status { get; set; }
// 其他屬性和方法
}
// 使用範例
Order order = new Order { OrderId = 1, Status = OrderStatus.New };
使用情境二:配置選項
假設你有一個應用程序,需要根據用戶的偏好設置來更改其行為,如日志記錄級別。
public enum LogLevel
{
Unknown = 0
None = 1,
Info = 2,
Warning = 3,
Error = 4,
Debug = 5
}
public class Logger
{
public LogLevel CurrentLevel { get; set; }
public void Log(string message, LogLevel level)
{
if (level >= CurrentLevel)
{
Console.WriteLine($"[{level}]: {message}");
}
}
}
// 使用範例
Logger logger = new Logger { CurrentLevel = LogLevel.Warning };
logger.Log("This is an info message.", LogLevel.Info); // 不會被記錄
logger.Log("This is an error message.", LogLevel.Error); // 會被記錄
結論
enum
在 C# 中是一個非常強大的特性,它不僅可以提高程式碼的可讀性和安全性,還能使程式碼更加易於維護。通過在適當的場合使用列舉來代替hard code 的數字或字符串,你的程式碼將會更加清晰和專業。記住,在任何可能出現一組固定值集合的場景中,考慮使用 enum
都是一個不錯的選擇。
reference