我已经将C#枚举定义为
public enum ORDER
{
...
unknown,
partial01,
partial12,
partial23,
}
并可以将其值用作字符串,如下所示:
string ss = ORDER.partial01.ToString();
但是,当我尝试在case语句中使用它时,它无法编译:
string value = ...
switch (value)
{
case null:
break;
case "s":
// OK
break;
case ORDER.partial01.ToString():
// compiler throws "a constant value is expected"
break;
...
我以为枚举是常量。我该如何解决?
(我无法将值解析为枚举,因为某些值超出了范围)
最佳答案
枚举是一个常量,但是.ToString()的结果不是。就编译器而言,它是一个动态值。您可能需要将切换用例转换为一系列if/else语句
关于c# - 如何在case语句中使用C#枚举值的字符串值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1273228/