IronPython 创建泛型 class

IronPython create generic class

可以在 IronPython 中创建通用 class 吗?我想继承通用 c# class 并在顶部实现自定义 IronPython class。

例如:

public class A<T>
{

}

第一个 IronPython class:

class B[T](A[T]): # Problematic part. I don't know how to create a
                  # generic ironpython class

第二个 IronPython class:

class C(B[object]): 

所以在第一个 IronPython 中就是问题所在。我现在不热衷于创建一个泛型 class 来传递类型。这可能吗?

编辑

我不只是想使用通用的 c# classes。我想在 IronPython 中实现我自己的并从 c# class.

继承

EDIT2

我想要实现的是 class A,它有一个 python 基础 class B,它应该有一个通用的 C# 基础class C。 python baseclass B 与 C# baseclass C 的类型无关(它只是通用 C# class 的特化) ), 但它必须初始化正确的 C# 基础 class.

谢谢!

(Iron)Python是动态类型语言,python中没有泛型classes的概念。您可以派生自泛型 .NET class,但您实际上无法创建泛型 python class,没有这样的东西。

不过,您可以使用一些装饰器来模仿语法。

class B(object):
    class _Meta(type):
        def __getitem__(cls, t):
            from System.Collections.Generic import List as A # just an example
            class _B(A[t]):
                pass
            return _B
    __metaclass__ = _Meta

class C(B[object]):
    pass

您对 B 的实际实现是示例中的 class _B