C# 枚舉的初始化


3.2 枚舉類型(Enum types)的默認值

  對於枚舉類型(Enum types),.NET會自動將字面值0(literal 0)隱式地轉換為對應的枚舉類型。

  3.2.1 有一個0值成員

  如果枚舉類型中的某個成員被賦予0值(不要求是第一個成員),那么枚舉變量所儲存的值就是該成員的值。假定Alignment的成員被賦值如下:

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

  那么,下面這句

  Alignment a = new Alignment();

  將等效於

  Alignment a = Alignment.Center;

  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());

http://tech.ddvip.com/2008-10/122481054481924_4.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM