IronPython 里某些类型的显式转换
import clr, System
x = clr.Reference[System.UInt64](0)#创建一个到System.UInt64对象的引用,C的行话是指针
x.Value = 1 * 1
上述代码在最后 x.Value = 1*1 的时候抛了一个类型异常出来..
我就直接在 ipy console 里执行 x.Value = 1 测试
我靠,没有任何错误啊。为啥后面赋值把整数替换成表达式就错呢?我想当然的以为这个是 IronPython 的 bug,差点就去开 Issue 了。后来转念一想,这个 2.0.3 的 ipy 出错,或许 2.6 就 fix 了...
然后发现在 2.6 里更悲剧,x.Value = 1 也直接抛异常..我这才意识到这种赋值操作是有问题的,改成 x.Value = System.UInt64(1*1) 搞定
最新评论