带有IronPython类型参数的C#泛型

所以,情况是我有一个名为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类型,必须在实例化类时提供.该类型用于在动态调用时解析任何虚拟重载和其他方法.

上一篇:.net framework


下一篇:分布式系统中如何优雅地追踪日志(原理篇)