比较IronPython中的枚举值

时间:2014-10-29 18:14:01

标签: c# enums ironpython

在IronPython脚本中,我试图比较一个对象(在C#中创建)的属性(类型Grade)与Grade枚举的可能值之一。例如:

if (myObject.TotalGrade == Grade.Fail):

现在,我在获得这两个值后设置了一个断点,我确实可以验证它们都是“失败”;但是,检查失败,程序转到下一个子句。 python等号运算符不适合C#枚举吗?

其他信息:我从C#导入了Grade枚举,如下所示。

import clr
clr.AddReferenceToFile("mydll.dll")
from mydll import Grade

1 个答案:

答案 0 :(得分:3)

根据要求,我的评论作为答案:

我不确定为什么他们不能比较平等,但显然enums are implemented as boxed types in IronPython - 在这种情况下,你似乎有两个不同的对象用于相同的枚举值。

您可以通过直接比较基础值来解决此问题:

if myObject.TotalGrade.value__ == Grade.Fail.value__:
    pass  # your code here...