1
我想比较两个Type
对象是否相等,忽略它们的类型参数。比较非通用类型
例如,比较IEnumerable<int>
和IEnumerable<string>
回报假,这是有道理的,但我只是想给IEnumerable
元素进行比较。
我该怎么做Type
或TypeInfo
?
我想比较两个Type
对象是否相等,忽略它们的类型参数。比较非通用类型
例如,比较IEnumerable<int>
和IEnumerable<string>
回报假,这是有道理的,但我只是想给IEnumerable
元素进行比较。
我该怎么做Type
或TypeInfo
?
您可以拨打GetType().GetGenericTypeDefinition();
以获取通用基本类型。
如果您需要比较可能或不可泛型的任意类型,请在调用'GetGenericTypeDefinition()'之前检查'GetType()。IsGenericType',因为它会引发非泛型类型。 – 2014-09-18 19:38:26
只是一个术语说明,为了更轻松地与C#社区连接:我们称“reified”类型为“closed”,非reified类型为“open”。见ECMA-334 25.5.2。 – codekaizen 2014-09-18 20:08:39