当前位置

IronPython 里某些类型的显式转换

  1. import clr, System
  2. x = clr.Reference[System.UInt64](0)
  3. #创建一个到System.UInt64对象的引用,C的行话是指针
  4.  
  5. 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) 搞定

Topic: