[C#][C#幼幼班]Enum列舉的使用時機

JoJo

在 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 都是一個不錯的選擇。

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

JoJo
JoJo

Written by JoJo

2020 年跳進軟體的菜雞後端

No responses yet

Write a response