我需要使用其中一个值= 50/50
制作枚举这不可能吗? Visual Studio似乎不喜欢它。
我可能不得不让这个字段成为数据库查找。
请告诉我。
答案 0 :(得分:5)
C#枚举编译为密封类,继承自Enum,公共静态字段带有枚举成员的名称,因此,您要求编译器将字段命名为枚举值或50/50。< / p>
在命名时,枚举值与属性和字段具有相同的限制。
答案 1 :(得分:3)
您可以使用描述属性在描述中存储枚举的自定义值,然后使用它。
Enum:
public enum MyEnum
{
[Description("50/50")]
Enum1 = 1,
[Description("Whatever")]
Enum2 = 2,
}
使用反射读取存储在Description属性中的自定义值的方法。
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();
}
答案 2 :(得分:1)
enum SomeEnum
{
Value = 1 // 50/50!
}
枚举值是常量整数类型。
答案 3 :(得分:1)
如果你希望你的价值的名称是50/50,那你就不走运了。但是,您可以定义一个名称为FiftyFifty的值,在我看来,这个值就像描述一样。
答案 4 :(得分:0)
“50/50”值?你的意思是字符串值?不,C#不能那样做。
答案 5 :(得分:0)
dhinesh通过使用Description属性给出了一个很好的提示。
我会推荐以下枚举
public enum Chances
{
[Description("No guess available")]
NotDefined = 0,
[Description("No chance")]
None,
[Description("50/50")]
FiftyFifty,
[Description("100%")]
Always
}
为了得到它的描述,你应该看看这些问题: