gpt4 book ai didi

c# - IronPython 创建通用类

转载 作者:太空宇宙 更新时间:2023-11-03 10:21:50 26 4
gpt4 key购买 nike

可以在 IronPython 中创建泛型类吗?我想继承一个通用的 c# 类并在上面实现一个自定义的 IronPython 类。

例如:

public class A<T>
{

}

第一个 IronPython 类:

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

第二个 IronPython 类:

class C(B[object]): 

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

编辑

我不只是想使用通用的 C# 类。我想在 IronPython 中实现我自己的并从 c# 类继承。

EDIT2

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

谢谢!

最佳答案

(Iron)Python 是一种动态类型语言,python 中没有泛型类的概念。您可以从泛型 .NET 类派生,但实际上不能创建泛型 Python 类,没有这样的东西。

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

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 的实际实现是示例中的类 _B

关于c# - IronPython 创建通用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215893/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com