如果我有這樣的代碼C# - 你可以通過數值調用一個枚舉嗎?
//Spice Enums
enum SpiceLevels {None = 0 , Mild = 1, Moderate = 2, Ferocious = 3};
,其中列明瞭枚舉名稱+他們的電話號碼,我怎麼能叫一個枚舉從一個變量,說,如果一個變量是3
,我怎麼得到它調用並顯示兇猛?
如果我有這樣的代碼C# - 你可以通過數值調用一個枚舉嗎?
//Spice Enums
enum SpiceLevels {None = 0 , Mild = 1, Moderate = 2, Ferocious = 3};
,其中列明瞭枚舉名稱+他們的電話號碼,我怎麼能叫一個枚舉從一個變量,說,如果一個變量是3
,我怎麼得到它調用並顯示兇猛?
只投給枚舉整數:
SpiceLevels level = (SpiceLevels) 3;
,當然還有其他的方式也工作正常:
int number = (int) SpiceLevels.Ferocious;
也MSDN參見:
每個枚舉類型都有一個基礎類型,可以是除char之外的任何整型。枚舉元素的默認基礎類型是int。
...
然而,顯式類型轉換是需要從枚舉類型轉換爲整型
enum SpiceLevels { None = 0, Mild = 1, Moderate = 2, Ferocious = 3 };
static void Main(string[] args)
{
int x = 3;
Console.WriteLine((SpiceLevels)x);
Console.ReadKey();
}
枚舉從繼承的Int32默認情況下,所以每個項目被分配一個數值,從零開始(除非你自己指定了值,如你所做的那樣)。
因此,得到了枚舉只是int值投射到您的枚舉的情況下...
int myValue = 3;
SpiceLevels level = (SpiceLevels)myValue;
WriteLine(level); // writes "Ferocious"
作爲回答,您可以只投了'int'值。但請記住,一個'enum'可以有多個相同的值。在這種情況下,第一個元素將被返回。 –