我想比较两种类型。我有class Foo<Bar>,但我不知道我必须知道的通用参数是否是一个Foo对象。以下代码不起作用,我不知道为什么。
class Foo<Bar>
Foo
foreach (var type in types.Where(t => t.BaseType == typeof(Foo<>)) { use(type); }
我找到了答案。有一个名为type.GetGenericTypeDefinition()的方法,我现在可以将我的对象与此方法返回类型进行比较。
type.GetGenericTypeDefinition()