如何从参数化泛型类型中获取非参数化类型?

时间:2014-10-20 18:59:39

标签: c# generics

有没有办法获取参数化泛型类型并获得相应的非参数化类型?

Type parameterizedFoo = typeof(Foo<double>);
Type unparameterizedFoo = parameterizedFoo.TypeWithoutParameters; // == typeof(Foo<>);

2 个答案:

答案 0 :(得分:2)

Type unparameterizedFoo = parameterizedFoo.GetGenericTypeDefinition();

答案 1 :(得分:1)

您正在寻找GetGenericTypeDefinition方法。

Type parameterizedFoo = typeof(Foo<double>);
Type unparameterizedFoo = parameterizedFoo.GetGenericTypeDefinition();
Console.WriteLine(unparameterizedFoo == typeof(Foo<>)); // True