2010-09-06 137 views
0

嗨,所有,因爲我知道我們可以通過裝箱和拆箱的概念改變參考類型的值類型。所以我想問一下,枚舉是一個值類型,所以我們可以在參考類型中改變它嗎? 像int a = 5是一個值類型,我們可以將它轉換爲參考類型,我們可以用enum做同樣的事情;在c中改變類型#

回答

3

你的問題有點不清楚,但可以,你可以用與其他值類型相同的方法來枚舉枚舉值。一個有趣的一點是,你雖然盒裝枚舉值保持適當的枚舉類型,你可以從一個枚舉拆箱到它的基本類型,反之亦然:

using System; 

enum Color { Red, Green, Blue } 

class Test 
{ 
    static void Main() 
    { 
     Color c = Color.Blue; 
     object o = c;   
     int i = (int) o; 
     Console.WriteLine(i); // Prints 2 

     i = 1; 
     o = i; 
     c = (Color) o; 
     Console.WriteLine(c); // Prints Green 
    } 
} 
+0

稍微偏離話題的提問字節類型的情況下是有用的,但我想這也可能是有趣的,也指出你不需要爲了在枚舉類型和它們的基礎類型之間進行轉換而在拳擊/拆箱方面進行往返。 – 2010-09-06 10:09:33

0

是的,它是可能的框枚舉,因爲底層值是一個數值。您也可以通過下面的語法改變其基本類型:

public enum Test : byte 
{ /* Values */ } 

請注意,您要使用的枚舉值作爲標誌