Type.GenericTypeArguments
属性和方法有什么区别Type.GetGenericArguments()
?他们总是返回相同的东西还是存在不同的情况?
问问题
7302 次
2 回答
37
typeof(List<>)
是他们不同的一个例子。该属性返回一个空数组,而该方法返回一个包含泛型的数组T
。(这个T
有)IsGenericParameter
true
通过阅读文档,我认为您可以将其GenericTypeArguments
视为GetGenericArguments().Where(t => !t.IsGenericParameter).ToArray()
,即仅具体类型。另请参阅ContainsGenericParameters
。
于 2013-10-21T20:31:26.610 回答
4
参考资料告诉了确切的答案:
public virtual Type[] GenericTypeArguments{
get{
if(IsGenericType && !IsGenericTypeDefinition){
return GetGenericArguments();
}
else{
return Type.EmptyTypes;
}
}
这个实现永远不会被其他东西覆盖。
于 2020-07-07T16:51:46.247 回答