所以,情况是我有一个名为Foo的C#泛型类,其模板参数T具有new()约束.我已经宣布我的课程是这样的:
class Baz
{
public Baz() { }
}
class Foo<T>
where T : Baz, new()
{
// blah blah
}
在Python中:
class Bar(Baz):
def __init__(self):
""" do various things here """
但是,如果在Python中我尝试做Foo [Bar],我会收到一个错误,告诉我我的Bar类违反了Foo< T>上的约束(即new()约束).
是什么赋予了?
解决方法:
IronPython对象没有默认构造函数.他们需要携带一些额外的可变状态,Python类型,必须在实例化类时提供.该类型用于在动态调用时解析任何虚拟重载和其他方法.