我有一个包含自定义对象映射的映射类:
public class MappingType
{
public Type source {get;set;}
public Type dest {get;set;}
}
为什么我不能在下面使用它们(mappinglist
是MappingType
的对象?)
IEnumerable<mappinglist[0].source,mappinglist[0].dest> customlist;
我有什么选择?我怎样才能在这种情况下使用它?
答案 0 :(得分:0)
C#泛型系统适用于编译时已知的类型。您不能仅在运行时提供已知类型参数的类型。
此外,正如@JonSkeet指出的那样,IEnumerable<T>
只接受一个类型参数。
如果您的类型有任何共同点(共享基类,共享接口),您可以使用泛型的“共同点”,例如。
IEnumerable<ISomeSharedInterface> customList;
如果它们没有任何共同点,您仍然可以使用非通用IEnumerable
。