C# 在Python3中将Int32与PythonNet一起使用
在Python2中,一切都很好,但在Python3中,它不起作用。我使用Gohlke Python包中的whl安装了这个包。问题是,在Python3中,所有整数都是长的。当传递给C#函数时,它们作为64位整数传递,这会导致将Int32作为参数的函数失败,错误为“没有方法匹配给定参数”。我尝试使用convert.ToInt32()将其转换为Int32,但这将返回一个Python int,它又是64位的 所以,问题是,如何在Python3中正确使用Int32 哦,当我试着这样做时,它出现了一个溢出错误:C# 在Python3中将Int32与PythonNet一起使用,c#,python,integer,python-3.4,python.net,C#,Python,Integer,Python 3.4,Python.net,在Python2中,一切都很好,但在Python3中,它不起作用。我使用Gohlke Python包中的whl安装了这个包。问题是,在Python3中,所有整数都是长的。当传递给C#函数时,它们作为64位整数传递,这会导致将Int32作为参数的函数失败,错误为“没有方法匹配给定参数”。我尝试使用convert.ToInt32()将其转换为Int32,但这将返回一个Python int,它又是64位的 所以,问题是,如何在Python3中正确使用Int32 哦,当我试着这样做时,它出现了一个溢出错
>>> print(Int32(2))
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
print(Int32(2))
OverflowError: value too large to convert
打印(Int32(2))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
打印(Int32(2))
溢出错误:值太大,无法转换
需要从系统加载Unint32或Int32:
import clr
clr.AddReference("System")
from System import UInt32, Int32
print(UInt32(2))
print(Int32(2))
Unint32或Int32需要从系统加载:
import clr
clr.AddReference("System")
from System import UInt32, Int32
print(UInt32(2))
print(Int32(2))