GetGenericArguments()作用于ObservableCollection<可以是空的
本文关键字:作用于 ObservableCollection GetGenericArguments | 更新日期: 2023-09-27 18:18:24
在我的代码中,我正在处理ObservableCollections(作为System.Type)。然后我做:
var args = propertyType.GetGenericArguments();
要知道我有什么类型的集合,我正在做这样的测试:
if (args.Count() != 0 && args[0] == typeof(string))
我正在测试args是否为空,但我想知道的是"当我处理ObservableCollection时,args列表是否可能为空?"
我不确定我问的是否清楚,如果不清楚就告诉我!
No。如果propertyType是泛型类型,则args永远不能为空。
您可以在使用type.IsGenericType
属性执行此代码之前检查类型是否为泛型。
因此我建议这样做:
if(propertyType.IsGenericType)
{
var args = propertyType.GetGenericArguments();
if (args[0] == typeof(string))
}
如果你能保证propertyType
总是typeof(ObservableCollection<T>)
,那么可以安全地假设args总是有一个元素