编程语言
首页 > 编程语言> > 如何将IronPython实例方法传递给类型为`Func`的(C#)函数参数

如何将IronPython实例方法传递给类型为`Func`的(C#)函数参数

作者:互联网

我正在尝试将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

标签:generics,ironpython,c
来源: https://codeday.me/bug/20191210/2099486.html