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列表是否可能为空?"

我不确定我问的是否清楚,如果不清楚就告诉我!

GetGenericArguments()作用于ObservableCollection<可以是空的

No。如果propertyType是泛型类型,则args永远不能为空。

您可以在使用type.IsGenericType属性执行此代码之前检查类型是否为泛型。

因此我建议这样做:

if(propertyType.IsGenericType)
{
    var args = propertyType.GetGenericArguments();
    if (args[0] == typeof(string))
}

如果你能保证propertyType总是typeof(ObservableCollection<T>),那么可以安全地假设args总是有一个元素