Я пытаюсь создать оператор 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
Ошибка:
Ожидается постоянное значение