是否可以在枚举中添加带空格或特殊字符的字符串

时间:2011-01-19 12:50:21

标签: c# .net enums

斐伊川,

是否可以在枚举

中添加带空格或特殊字符的字符串

例如,我有一个字符串,如“保险KR用户(姓名)”我试图将此字符串包含在枚举中

public enum MemberGroup
{
    Insurance KR Users (Name)
}

但它会发现错误。请给我一个解决方案,将这些类型的字符串包含在枚举中。

2 个答案:

答案 0 :(得分:10)

枚举成员本身必须是valid identifier,因此不能包含空格或特殊字符。

但您可以使用DescriptionAttribute提供每个枚举值的更完整描述:

public enum MemberGroup
{
    [Description("Insurance KR Users (Name)")]
    InsuranceKrUsers_Name
}

要检索说明,请使用以下内容:

public static string GetDescription(Enum value)
{
   FieldInfo fi = value.GetType().GetField(value.ToString()); 
   DescriptionAttribute[] attributes = 
     (DescriptionAttribute[])fi.GetCustomAttributes(
     typeof(DescriptionAttribute), false);
   return (attributes.Length > 0) ? attributes[0].Description : value.ToString();
}

答案 1 :(得分:0)

枚举本身不能包含空格,正如彼得所说,它只能包含一组特定字符。

您可以使用枚举的Description属性来存储一些额外的信息,但这必须使用反射来检索。互联网上有很多例子如何做,但作为一个例子,here就是一个。