我正在尝试将IronPython实例方法分配给C#Func< Foo>.参数.
在C#中,我将有一个类似的方法:
public class CSharpClass
{
public void DoSomething(Func<Foo> something)
{
var foo = something()
}
}
并从IronPython这样调用它:
class IronPythonClass:
def foobar(self):
return Foo()
CSharpClass().DoSomething(foobar)
但我收到以下错误:
TypeError:预期的Func [Foo],具有instancemethod
解决方法:
好.我想我可能已经找到了解决方案:
import clr
clr.AddReference('System')
clr.AddReference('System.Core')
from System import Func
class IronPythonClass:
def foobar(self):
return Foo()
CSharpClass().DoSomething(Func[Foo](foobar))
有趣的是Func [Foo] constructor