0
有没有办法取得参数化的泛型类型并获得相应的非参数化类型?如何从参数化的泛型类型获取非参数化类型?
Type parameterizedFoo = typeof(Foo<double>);
Type unparameterizedFoo = parameterizedFoo.TypeWithoutParameters; // == typeof(Foo<>);
有没有办法取得参数化的泛型类型并获得相应的非参数化类型?如何从参数化的泛型类型获取非参数化类型?
Type parameterizedFoo = typeof(Foo<double>);
Type unparameterizedFoo = parameterizedFoo.TypeWithoutParameters; // == typeof(Foo<>);
Type unparameterizedFoo = parameterizedFoo.GetGenericTypeDefinition();
您正在寻找的GetGenericTypeDefinition
方法。
Type parameterizedFoo = typeof(Foo<double>);
Type unparameterizedFoo = parameterizedFoo.GetGenericTypeDefinition();
Console.WriteLine(unparameterizedFoo == typeof(Foo<>)); // True
注意'GetGenericTypeDefinition'抛出非泛型类型,所以不同的地方以及你如何使用它,你可能想/需要检查'IsGenericType'第一。 – 2014-10-20 19:04:10