首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 基礎入門:枚舉型別完整指南

     編輯:關於C語言

什麼是枚舉?

枚舉 是一組具名整數常數的集合,用於表示有限、固定的選項集合,如季節、星期、狀態碼等。它能提高程式碼可讀性、提供型別安全,並便於除錯時顯示有意義的名稱而非魔術數字。

1. 基本語法

[modifiers] enum EnumName
{
    Member1,
    Member2,
    // ...
    MemberN
}

範例:技術職稱

public enum TechnologyDirection
{
    CppDeveloper,      // C++ 程式設計師
    JavaDeveloper,     // Java 程式設計師
    DotNetDeveloper,   // .NET 程式設計師
    Architect,         // 架構師
    TeamLead,          // 開發組長
    Analyst            // 需求分析師
}

2. 指定底層數值

預設底層型別為 int,成員從 0 起始自動遞增。可顯式指定數值:

public enum Season
{
    Spring = 0,
    Summer = 1,
    Autumn = 2,
    Winter = 3
}

// 也可不連續、甚至重複
public enum Priority
{
    Low = 1,
    Medium = 5,
    High = 10,
    Critical = 10   // 允許相同值
}

3. 常見操作

// 取得名稱
string name = Season.Autumn.ToString(); // "Autumn"

// 取得數值
int value = (int)Season.Autumn; // 2

// 字串轉枚舉
Season s = Enum.Parse<Season>("Spring"); // 建議用 TryParse

// 列舉所有成員
foreach (var s in Enum.GetValues(typeof(Season)))
    Console.WriteLine($"{s} = {(int)s}");

// 判斷是否定義
bool exists = Enum.IsDefined(typeof(Season), "Summer"); // true

4. 位元旗標枚舉

加上 [Flags] 屬性,配合 2 的冪次數值,可進行位元運算:

[Flags]
public enum FileAccess
{
    None = 0,
    Read = 1,      // 0b0001
    Write = 2,     // 0b0010
    Execute = 4,   // 0b0100
    ReadWrite = Read | Write // 3
}

var access = FileAccess.Read | FileAccess.Write;
bool canWrite = access.HasFlag(FileAccess.Write); // true

5. 最佳實務

  • 預設使用 int,除非記憶體極度敏感才改用 byte/short。
  • 成員命名採 PascalCase,複數名稱用單數(如 Color.Red 而非 Colors.Red)。
  • 避免在公開 API 中頻繁變更枚舉數值,破壞二進位相容性。
  • 需擴充行為時,改用 Smart Enum 模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved