gpt4 book ai didi

c# - 将泛型类型转换为基类

转载 作者:行者123 更新时间:2023-12-05 01:15:40 25 4
gpt4 key购买 nike

public class Base {...}

public class Complex: Base {...}

public class MyOtherClass<T> {...}

以及两种类型的列表

List<MyOtherClass<Complex>> listOfComplex
List<MyOtherClass<Base>> listOfBase

我想要一份 list

listOfComplex.Union(listOfBase)

但我无法将一种类型的泛型转换为另一种类型的泛型,即使 Complex 从 Base 派生有可能有一个基类的列表吗?

最佳答案

虽然Complex源自 Base , MyOtherClass<Complex> 之间没有这种关系MyOtherClass<Base> .这就是您无法创建 Union 的原因。两个列表中。对于框架,两种泛型类型完全不同

现在的解决方案实际上取决于您的类(class)究竟做了什么。在 Docs 中查看协变和逆变的主题- 这是两种特殊情况,如果类型仅为输入或输出,您将被允许在两种泛型类型之间创建转换。

您还可以在执行“联合”操作之前添加自定义转换或手动将项目转换为“基本”类型。

关于c# - 将泛型类型转换为基类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55341425/

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