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

标签 c# .net clr ironpython dynamic-language-runtime

所以,情况是我有一个名为 Foo 的 C# 通用类使用模板参数 T其中有 new()约束。我已经宣布我的类(class)是这样的:

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 类型,必须在实例化类时提供。该类型用于在动态调用时解析任何虚拟重载和其他方法。

关于具有 IronPython 类型参数的 C# 泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3785896/

相关文章:

c# - 哪些 .Net 程序集作为标准集成到 SQL Server 2008 R2 CLR 中?

c# - 作为静态或非静态类的存储库?

c# - WPF 4 中的 VistaBridge 和桌面窗口管理器

java - C#/Java 中是否有任何 GLL 解析器组合器库?

c# - 如何在单击 ItemTemplate asp :Image Button with Query String? 时打开新选项卡/窗口

.net - 在 ASP.NET 中接收 POST 数据

c# - 从一个队列中删除存在于另一个队列中的元素

c++ - 错误 LNK2019 : unresolved external symbol "extern "C"what is this error?

c# - NUnit 辅助线程异常

c# - 如何使用 FluentAssertions 断言属性的默认值?