【发布时间】:2013-09-27 14:17:52
【问题描述】:
我有一个 public enum 声明如下:
public enum States
{
SomeState,
SomeOtherState
}
有一个任意字符串myString 可能代表上述任何“状态”,我想编写一个开关来检查它当前是哪个。
这是我的尝试。
States state = Enum.Parse(States, myString, true);
switch (state)
{
case States.SomeState:
case States.SomeOtherState:
break;
default:
break;
}
在Enum.Parse() 内部,它告诉我参数 State 被用作类型而不是变量。这不是正确的用法吗? Enum.Parse 应该接收的第一个参数是Type enumType:为什么它告诉我它需要一个变量?
多种回复表示使用typeof。不幸的是,我已经尝试过了,但由于收到以下错误,我猜这是一个错误的想法。
Enum.Parse(typeof(States), myString, true);
产量:
无法将类型“object”隐式转换为“States”。显式转换 存在。
【问题讨论】: