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),差異立現。