2012-01-02 2 views
2

HI
У меня есть следующие перечисленияОтображение текста для Enum

public enum Priority : byte 
    { 
     A=1, 
     B+ = 2, 
     B=4, 
     C=8, 
     D=16, 
     E=32 
    } 

Я хочу добавить B+ в перечислении, но он дает мне ошибку

+0

Конечно, 'B +' не является допустимым именем для значения перечисления. На самом деле это даже не допустимое имя для идентификатора. Какова ваша фактическая проблема? –

+0

, если вам нужен пользовательский текст для членов перечисления, попробуйте http://stackoverflow.com/questions/1187085/string-to-enum-conversion-in-c-sharp –

+1

Почему пустые голоса? –

ответ

12

Вы можете добавить удобное описание для перечисления, как показано ниже:

enum MyEnum 
{ 
    [Description("This is black")] 
    Black, 
    [Description("This is white")] 
    White 
} 

Ref. Ссылка:How to have userfriendly names for enumerations?

4

Как насчет использования действительного идентификатора, как B_Plus?

+0

Это бизнес-требование, чтобы показать B + в выпадающем списке – Tassadaque

2

Да. Это дает вам ошибку, потому что ваш код неправильный. Вы не можете сделать «B +» значение перечисления, потому что есть знак «плюс». По той же причине вы не можете объявить int B+. Используйте другое имя.

0

Вы не сможете использовать + в качестве идентификатора имени, потому что это математический оператор или конкатенатор строк ... он не может использоваться с перечислениями. Используйте альтернативный синтаксис или используйте альтернативный подход. Вы могли бы рассмотреть государственный шаблон проектирования:

http://www.dofactory.com/patterns/PatternState.aspx#_self2

Смежные вопросы