【发布时间】:2016-01-26 06:39:36
【问题描述】:
我有一个带有重载静态方法的 C# 类,如下所示:
// Added to the Simple class in Tutorial\Extend\csextend.cs
public static int Foo(IEnumerable<int> values)
{
return 1;
}
public static int Foo(IEnumerable<string> values)
{
return 2;
}
当我尝试从 IronPython 2.6 调用这些时出现错误。我正在传递一个包含字符串的 python 列表。
import clr
clr.AddReferenceToFile("csextend.dll")
import Simple
Simple.Foo(["alpha", "bravo", "charlie"])
TypeError: 多个目标可以匹配:Foo(IEnumerable[str]), Foo(IEnumerable[
诠释])
我的第一个问题是为什么这不起作用?似乎重载解决方案应该对此起作用。这是 IronPython 中的错误吗?什么是最干净的解决方法。我可以重命名例程,这样它们就不会互相重载,但是我让 Ironpython 怪癖改变了 C# 类的设计。
有没有一种简洁的方法可以让 python 知道列表完全由一种类型组成,并且它应该选择一个特定的重载?
【问题讨论】:
标签: ironpython