枚举错误:运算符'=='不能应用于'对象'类型的操作数

时间:2013-12-18 23:45:18

标签: c# enums

尝试编译此代码,但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";
        }
    }
}

2 个答案:

答案 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)