上使用一些IronPython的腳本作爲插件,利用功能在C#編碼的項目。在我的C#類之一,我有一個屬性,它的類型是:C#/ IronPython的互操作和「浮動」數據類型
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的「雙」型,嘗試「浮動」一時興起,它工作得很好,給沒有錯誤。但現在,它的使用浮動兩端(它應該是從一開始就使用)它的錯誤,並認爲,C#代碼使用的是「單」數據類型?
我甚至在爲C#庫,果然對象瀏覽器檢查,它顯示爲使用「浮動式」,而不是「單次」
謝謝你,完美的答案。和是的,我想我沒有那種已經鋪陳什麼映射了,我只是不知道爲什麼。 C#中的float不會在Python中浮動,這似乎與此相反。 – 2010-06-09 14:22:51
歡迎你!我最近有一個類似的問題(C#/ Python Interop)。它確實很直覺,因爲所有的類C語言,Java和更多的使用'float'單精度的數字。 – 2010-06-09 14:30:16