gpt4 book ai didi

C# - 一个列表 II 中的多个泛型类型

转载 作者:太空狗 更新时间:2023-10-30 00:36:37 27 4
gpt4 key购买 nike

能否请您为我澄清所问的问题 here .

为什么最初定义的类很重要:

public class Metadata<DataType> where DataType : struct 
{
private DataType mDataType;
}
  1. 被替换为从同一接口(interface)或抽象类派生的派生类是否可能是因为 IList<> 成员必须共享一些公共(public)对象类型?
  2. 必须将该通用类型与 IList<> 类型同名,例如。 IList -> 派生自 T,或 IList -> 派生自 InterfaceT,IT?

感谢和问候,米兰。

最佳答案

每个泛型实例都是一个新类型。即MetaData<int>是不同于 MetaData<bool> 的类型.编译器生成这样的类型(使用 .Net 反射器检查)

Namespace.Metadata`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]

所以你不能声明一个异构类型的列表。您只能声明一种类型的列表。因此,有必要使所有通用 MetaData<> 类都从抽象类或接口(interface)继承。

关于C# - 一个列表 II 中的多个泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1351093/

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