【发布时间】:2020-05-19 18:25:44
【问题描述】:
如果我写下面的泛型方法:
static bool HelloWorld<TSource>(TSource input)
{
return typeof(TSource).IsPrimitive;
}
我将int 传递给它,它成功地将其识别为原语。例如,如果我传递一个字符串,它不会 - 这意味着它可以工作。
documentation 声明它不应该工作,或者我错过了什么?
如果当前 Type 表示一个泛型类型,或者是一个类型参数 泛型类型或泛型方法的定义,此属性 总是返回 false。
【问题讨论】:
-
~IsPrimitive 返回 true,因为您询问的是泛型参数 of 的类型,而不是泛型 type。对于
typeof(Foo<int>)之类的东西,它会返回 false,这是一个泛型类型,类型参数是原始的。~对不起,我自己看错了。
标签: c# generics .net-core reflection types