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

C# 顯式列舉轉換:整數與列舉、列舉與列舉雙向轉換規則

     編輯:關於C語言

顯式列舉轉換 涵蓋三類場景,本質上委託給底層元素型別的隱含或顯式數值轉換:

三類顯式列舉轉換

  1. 整數 → 列舉:sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal → 任意列舉
  2. 列舉 → 整數:任意列舉 → 上述 12 種整數/浮點型別
  3. 列舉 → 列舉:任意列舉 → 任意其他列舉

轉換機制:委託給元素型別

列舉 E : int(預設底層為 int):

  • (byte)E.Value 實際執行 (byte)(int)E.Value(顯式數值轉換)
  • (E)someByte 實際執行 (E)(int)someByte(隱含數值轉換 byte→int,再顯式列舉轉換)

程式碼範例


enum Weekday { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday }

Weekday day = (Weekday)3; // 顯式 int → Weekday
Console.WriteLine(day);   // 輸出 3 (Wednesday 的底層值)

最佳實務

  • 優先使用具名列舉成員:Weekday.Friday,避免魔術數字。
  • 需互通性(如資料庫儲存、序列化)時,再考慮顯式轉整數。
  • 跨列舉轉換極少見,通常表示設計問題,應審視領域模型。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved