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

C# 列舉初始化深度探討(一)

     編輯:關於C語言

問題


enum Alignment { Left, Center, Right } // Left=0
static void Main()
{
    Alignment a = new Alignment();
    Alignment b = Alignment.Left;
    Console.WriteLine(a.ToString("D")); // 0
    Console.WriteLine(b.ToString("D")); // 0
}

輸出皆為 0,看似等效。

核心差異

  • new Alignment():語意為「給我該型別的預設值」,永遠對應底層值 0。
  • Alignment.Left:語意為「給我名為 Left 的成員」,對應該成員的實際常值。

只有當第一個成員隱式或顯式為 0 時,兩者結果才一致。一旦調整列舉定義(如 Left = 1),差異立現。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved