2010-11-17 102 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