2010-11-17 104 views
0

我需要做一個枚舉值= 50/50C#枚舉問題

這不可能嗎? Visual Studio似乎並不喜歡它。

我可能不得不使這個領域看起來像數據庫查詢。

請讓我知道。

回答

5

C#枚舉編譯成密封類,繼承自Enum,公共靜態字段帶有枚舉成員的名稱,因此,您要求編譯器在您的案例中將枚舉值或50/50命名爲字段。

枚舉值在命名時與屬性和字段具有相同的限制。

+0

技術上是真的,但看到Dhinesh的答案是一個很好的方法來獲得o嚴謹的海報想要。 – d219 2017-11-11 11:22:20

0

「50/50」值?你的意思是一個字符串值?不,C#不能這樣做。

1

是啊,肯定是可以

enum SomeEnum 
{ 
    Value = 1 // 50/50! 
} 

枚舉值是常量整型。

1

如果你希望你的價值的名稱是50/50,那麼你的運氣不好。然而,您可以定義名稱爲FiftyFifty的值,(在我看來)這個名稱就像描述性名稱一樣。

3

您可以使用描述屬性將枚舉的自定義值存儲在描述中,然後使用它。

枚舉:

public enum MyEnum 
{ 
    [Description("50/50")] 
    Enum1 = 1, 

    [Description("Whatever")] 
    Enum2 = 2, 
} 

方法來讀取使用反射存儲在描述屬性的定製值。

private static string GetEnumCustomValue(Enum value) 
{ 
    FieldInfo enumField = value.GetType().GetField(value.ToString()); 
    var attributes = 
     (DescriptionAttribute[])enumField.GetCustomAttributes(typeof(DescriptionAttribute)), false); 
    if (attributes.Length > 0) 
    { 
     return attributes[0].Description; 
    } 
    return value.ToString(); 
} 
+0

我會試試這個,謝謝! – 2010-11-17 15:59:14

+0

感謝這種方法,我借用它是爲了我自己的需要。 :) – 2013-01-18 16:43:25