Я пытаюсь создать оператор switch
используя индекс char строки и Enum, используя эту оболочку, чтобы получить значение выбранного перечисления из Description. Это в значительной степени позволяет вам сохранить строку до значения enum.
Вот мое выражение if
:
if (msgComingFromFoo[1] == Convert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()))
{
//foo
}
и вот мое выражение о switch
:
switch (msgComingFromFoo[1])
{
case Convert.ToChar(Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()):
break;
}
Почему он принимает оператор if
а не switch
? Я попытался преобразовать его в символ, так как я выбираю индекс из строки, но, к сожалению, это не сработало.
Обновить:
Вот Message.Code
Enum
public class Message
{
public enum Code
{
[Description("A")]
FOO_TRIGGER_SIGNAL
}
}
Как видите, мне нужно, чтобы описание, присвоенное перечислению, а не значение перечисления, равное 0. Использование Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString()
из упомянутой оболочки возвращает A
не 0
Ошибка:
Ожидается постоянное значение