Можно ли добавить строку с пробелами или специальными символами в перечисление - PullRequest
0 голосов
/ 19 января 2011

Hii,

Можно ли добавить в перечисление строку с пробелами или специальными символами

Например, у меня есть строка типа "Insurance KR Users (Name)" Я пытался включить эту строку в enum, как

public enum MemberGroup
{
    Insurance KR Users (Name)
}

, но она ловила ошибки.Пожалуйста, дайте мне решение включить эти типы строк в enum.

Ответы [ 2 ]

10 голосов
/ 19 января 2011

Сам член enum должен быть действительным идентификатором , поэтому он не может содержать пробелы или специальные символы.

Но вы можете использовать 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();
}
0 голосов
/ 19 января 2011

Само перечисление не может содержать пробелов, и, как говорит Питер, оно может содержать только определенный набор символов.

Однако вы можете использовать атрибут Description перечисления для хранения некоторой дополнительной информации, но ее придется получить с помощью отражения. В интернете немало примеров, как это сделать, но, например, здесь - это один.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...