因此,情况是我有一个名为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类违反了new()上的约束(即Foo<T>约束)。
给什么?

最佳答案

ironpython对象没有默认构造函数。它们需要携带一些附加的可变状态,即python类型,在类被实例化时必须提供该类型。动态调用时,该类型用于解析任何虚拟重载和其他方法。

09-10 09:29
查看更多