gpt4 book ai didi

c# - 具有通用类型和继承的复杂模型

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:31 25 4
gpt4 key购买 nike

我得到了这个数据模型。(我不确定这是否是最好的方法) enter image description here

蓝色 block 是抽象类。绿色 block 是普通类。

我遇到的问题是:

我想将 C、D 或 E 对象保存在 Sub_BaseClass 变量中,但编译器告诉我需要指定泛型类的类型。

Sub_BaseClass<?> variable;

variable = (Sub_BaseClass<?>)objct;

我知道“objct”类型将是 C、D 或 E 类。我尝试在 Sub_BaseClass 泛型之前向该模型添加一个没有泛型类型的 Sub_BaseClass,但我需要指定 BaseClass 的类型,然后我在 C、D 和 E 中丢失了泛型类型。

我该如何解决这个问题?我想要/需要做类似的事情:

Sub_BaseClass variable;

variable = (Sub_BaseClass)objct;

这可能吗?

谢谢!

最佳答案

如果您真的想将 C、D 和 E 保存在 Sub_BaseClass 变量中,您必须使用通用参数,因为 Sub_BaseClass 是通用类。

这也意味着所有使用 Sub_BaseClass 变量的代码都必须是通用代码。例如:

public class BaseClass
{
}

public class Sub_BaseClass<T> : BaseClass
{
}

...

public void DoSomething<T>(BaseClass objct)
{
Sub_BaseClass<T> variable;

variable = objct as Sub_BaseClass<T>;

...
}

希望对您有所帮助。

关于c# - 具有通用类型和继承的复杂模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38390262/

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