尝试编译此代码,但if语句咳出一个错误:
错误1运算符'=='无法应用于'object'和..
类型的操作数
public enum ShoeType
{
soccer = 0,
jogging=1,
fitness=2
}
class Program
{
static void Main(string[] args)
{
string shoetype = "1";
if (Enum.Parse(typeof(ShoeType), shoetype) == ShoeType.jogging)
{
var test = "gotcha";
}
}
}
答案 0 :(得分:5)
如果您查看docs,可以看到Enum.Parse
方法已定义为返回Object
,因此您必须将结果转换为所需类型。像这样:
(ShoeType)Enum.Parse(typeof(ShoeType), shoetype)
您还可以使用TryParse
方法并使用布尔结果来查看解析是否成功:
ShoeType type;
if (Enum.TryParse(shoetype, out type) && type == ShoeType.jogging)
{
var test = "gotcha";
}
答案 1 :(得分:2)
试试这个:
if ( (ShoeType) Enum.Parse(typeof(ShoeType), shoetype) == ShoeType.jogging)