在IronPython脚本中,我试图比较一个对象(在C#中创建)的属性(类型Grade
)与Grade
枚举的可能值之一。例如:
if (myObject.TotalGrade == Grade.Fail):
现在,我在获得这两个值后设置了一个断点,我确实可以验证它们都是“失败”;但是,检查失败,程序转到下一个子句。 python等号运算符不适合C#枚举吗?
其他信息:我从C#导入了Grade
枚举,如下所示。
import clr
clr.AddReferenceToFile("mydll.dll")
from mydll import Grade
答案 0 :(得分:3)
根据要求,我的评论作为答案:
我不确定为什么他们不能比较平等,但显然enums are implemented as boxed types in IronPython - 在这种情况下,你似乎有两个不同的对象用于相同的枚举值。
您可以通过直接比较基础值来解决此问题:
if myObject.TotalGrade.value__ == Grade.Fail.value__:
pass # your code here...