在我的代码中,我正在处理ObservableCollections(作为System.Type)。然后我做:
var args = propertyType.GetGenericArguments();
知道我有什么类型的集合,我正在进行如下测试:
if (args.Count() != 0 && args[0] == typeof(string))
我正在测试args是不是空的但是我正在讨论的是“当我处理ObservableCollection时,args列表是否可能是空的?”
我不确定我问的是否清楚,只是告诉我它是不是!
答案 0 :(得分:1)
没有。如果propertyType是泛型类型,则args永远不会为空。
在使用type.IsGenericType
属性执行此代码之前,您可以检查类型是否是通用的。
因此我会这样建议:
if(propertyType.IsGenericType)
{
var args = propertyType.GetGenericArguments();
if (args[0] == typeof(string))
}
答案 1 :(得分:0)
如果您可以保证propertyType
总是typeof(ObservableCollection<T>)
,那么可以安全地假设args总是有一个元素。