请您澄清一下here提出的问题。
为什么最初定义的类很重要:
public class Metadata<DataType> where DataType : struct
{
private DataType mDataType;
}
谢谢&amp;问候, 米兰。
答案 0 :(得分:8)
每个泛型类型实例化都是一种新类型。即MetaData<int>
与MetaData<bool>
的类型不同。
编译器生成这样的类型(使用.Net refelector检查)
Namespace.Metadata`1[[System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
因此,您无法声明异构类型的列表。您只能声明一种类型的列表。因此,有必要使所有通用的MetaData&lt;&gt;要从抽象类或接口继承的类。