程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#枚舉的初始化(5)

C#枚舉的初始化(5)

編輯:關於C語言

3.2.2 沒有0值成員

如果枚舉類型中任何一個成員都不為0,例如

// Code #07
enum Alignment
{
  Left = 1,
  Center = 2,
  Right = 3
}

那麼

Alignment a = new Alignment();

將等效於

Alignment a = (Alignment)0;

或者

Alignment a = 0;

而此時,枚舉變量a所儲存的值我們可以稱為非預定義枚舉(成員)值。

3.2.3 有兩個或以上的0值成員

那麼,如果枚舉類型裡存在多於一個成員被賦予0值呢?例如

// Code #08
enum Alignment
{
  Left = 0,
  Center = 1,
  Right = 0
}

你能猜得出下面代碼的運行結果嗎?

// Code #09
Alignment a = new Alignment();
Console.WriteLine(a.ToString());

從該代碼的運行結果中我們可以看到,new把Alignment.Left“許配”給枚舉變量a。現在讓我們看看下面這段代碼:

// Code #10
string a = Enum.GetName(typeof(Alignment), 0);
Console.WriteLine(a.ToString());

其實,Code #10和Code #09的輸出結果一樣的,從.Net的源代碼中我們也可以看到,選擇對象的規則是先用Array.Sort(Array keys, Array items);對枚舉成員名稱及其值進行排序,再用循環挑選第一個出現的幸運兒。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved