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

具有IronPython类型参数的C#泛型,c#,.net,clr,ironpython,dynamic-language-runtime,C#,.net,Clr,Ironpython,Dynamic Language Runtime,因此,情况是我有一个名为Foo的C#泛型类,带有一个模板参数T,它具有new()约束。我已经声明我的类如下: class Baz { public Baz() { } } class Foo<T> where T : Baz, new() { // blah blah } 但是,如果在Python中,我尝试执行Foo[Bar],我会收到一个错误,告诉我我的Bar类违反了Foo上的约束(即new()约束) 给出了什么?IronPython对象没有默认构造函数

因此,情况是我有一个名为
Foo
的C#泛型类,带有一个模板参数
T
,它具有
new()
约束。我已经声明我的类如下:

class Baz
{
    public Baz() { }
}

class Foo<T>
    where T : Baz, new()
{
    // blah blah
}
但是,如果在Python中,我尝试执行
Foo[Bar]
,我会收到一个错误,告诉我我的
Bar
类违反了
Foo
上的约束(即
new()
约束)


给出了什么?

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

啊,是的,当我意识到模板实际上丢弃了我所有的Python类型信息时,我就这样想了。谢谢你确认这一点。有人能详细说明或者举个例子吗?我对python内部工作原理的了解并不能帮助我跳转到代码应该是什么样子。我只是尝试了一些东西,发现C#函数somefunc(string x){dostuff();}必须被称为somefunc[sometype](“some string”)
class Bar(Baz):
    def __init__(self):
        """ do various things here """