2017-01-15 97 views
3

如果我有這樣的代碼C# - 你可以通過數值調用一個枚舉嗎?

//Spice Enums 
enum SpiceLevels {None = 0 , Mild = 1, Moderate = 2, Ferocious = 3}; 

,其中列明瞭枚舉名稱+他們的電話號碼,我怎麼能叫一個枚舉從一個變量,說,如果一個變量是3,我怎麼得到它調用並顯示兇猛?

+0

作爲回答,您可以只投了'int'值。但請記住,一個'enum'可以有多個相同的值。在這種情況下,第一個元素將被返回。 –

回答

7

只投給枚舉整數:

SpiceLevels level = (SpiceLevels) 3; 

,當然還有其他的方式也工作正常:

int number = (int) SpiceLevels.Ferocious; 

MSDN參見:

每個枚舉類型都有一個基礎類型,可以是除char之外的任何整型。枚舉元素的默認基礎類型是int。

...

然而,顯式類型轉換是需要從枚舉類型轉換爲整型

2
enum SpiceLevels { None = 0, Mild = 1, Moderate = 2, Ferocious = 3 }; 
static void Main(string[] args) 
{ 
    int x = 3; 
    Console.WriteLine((SpiceLevels)x); 
    Console.ReadKey(); 
} 
0

枚舉從繼承的Int32默認情況下,所以每個項目被分配一個數值,從零開始(除非你自己指定了值,如你所做的那樣)。

因此,得到了枚舉只是int值投射到您的枚舉的情況下...

int myValue = 3; 
SpiceLevels level = (SpiceLevels)myValue; 
WriteLine(level); // writes "Ferocious"