est*_*bro 4 c# enums ironpython
在 IronPython 脚本中,我尝试将Grade对象(在 C# 中创建)的属性(类型为 )与枚举的可能值之一进行比较Grade。例如:
if (myObject.TotalGrade == Grade.Fail):
Run Code Online (Sandbox Code Playgroud)
现在,我在获得这两个值后设置了一个断点,并且我确实可以验证它们都保持“失败”;然而,检查失败,程序继续执行下一个子句。python 相等运算符不适合 C# 枚举吗?
附加信息:我已从GradeC# 导入枚举,如下所示。
import clr
clr.AddReferenceToFile("mydll.dll")
from mydll import Grade
Run Code Online (Sandbox Code Playgroud)
根据要求,我的评论作为答案:
我不确定为什么它们不会比较相等,但显然枚举在 IronPython 中被实现为装箱类型——在这种情况下,对于相同的枚举值,似乎有两个不同的对象。
您可以通过直接比较基础值来解决此问题,如下所示:
if myObject.TotalGrade.value__ == Grade.Fail.value__:
pass # your code here...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1251 次 |
| 最近记录: |