我正在一个涉及使用 IronPython 脚本作为插件的项目上工作,这些脚本利用了 C# 编写的功能。在我的一个 C# 类中,有一个属性类型如下:
Dictionary<int, float>
我可以帮助您进行翻译。这段内容是关于编程的,意思是“我从IronPython代码中设置了该属性的值,就像这样:”。
mc = MyClass()
mc.ValueDictionary = Dictionary[int, float]({1:0.0, 2:0.012, 3:0.024})
然而,当运行此代码时,它会抛出以下异常:
Microsoft.Scripting.ArgumentTypeException was unhandled by user code
Message=expected Dictionary[int, Single], got Dictionary[int, float]
为了让事情变得更加奇怪,最初的C#代码使用了
Dictionary<int, double>
但我在IronPython中找不到“double”类型,试着随便用了“float”,它可以正常工作,没有出现错误。但现在它在两端都使用“float”(本来就应该从一开始就这样做),它会出错,并认为C#代码正在使用“Single”数据类型?! 我甚至已经在C#库的对象浏览器中检查过了,确实显示它使用了“float”类型而不是“Single”。
float
表示单精度数字。 - Philip Daubmeier