Type.GenericTypeArguments
属性和Type.GetGenericArguments()
方法有什么不同?它们是否总是返回相同的内容,或者是否存在不同的情况?
发布于 2013-10-22 04:31:27
typeof(List<>)
就是它们不同的一个例子。property返回一个空数组,而method返回一个包含泛型T
的数组。(此T
具有IsGenericParameter
true
)
通过阅读文档,我认为您可以将GenericTypeArguments
视为GetGenericArguments().Where(t => !t.IsGenericParameter).ToArray()
,也就是说,只有具体的类型。另请参见ContainsGenericParameters
。
发布于 2020-07-08 00:51:46
参考源告诉我们确切的答案:
public virtual Type[] GenericTypeArguments{
get{
if(IsGenericType && !IsGenericTypeDefinition){
return GetGenericArguments();
}
else{
return Type.EmptyTypes;
}
}
这个实现永远不会被其他东西覆盖。
https://stackoverflow.com/questions/19503905
复制相似问题