【发布时间】:2018-07-31 14:11:07
【问题描述】:
我正在尝试使用字符串的 char 索引和使用 this 包装器的枚举创建一个 switch 语句,以从描述中获取所选枚举的值。它几乎允许您将字符串存储到枚举值。
这是我的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?由于我从字符串中选择索引,因此我尝试将其转换为 char,但不幸的是它不起作用。
更新:
这是Message.Code枚举
public class Message
{
public enum Code
{
[Description("A")]
FOO_TRIGGER_SIGNAL
}
}
如您所见,我需要分配给枚举的描述而不是枚举值 0。使用提到的包装器中的 Message.Code.FOO_TRIGGER_SIGNAL.EnumDescriptionToString() 返回 A 而不是 0
错误:
需要一个常数值
【问题讨论】:
-
请在问题中包含您使用 switch 语句得到的错误。
-
虽然您已接受答案,但我们仍需要您将错误添加到问题中以供未来访问者使用。目前你只是说“它不起作用”,这不是一个好问题。
标签: c# if-statement switch-statement