C# 是否对ObservableCollection执行GetGenericArguments()<;T>;可以是空的吗?

C# 是否对ObservableCollection执行GetGenericArguments()<;T>;可以是空的吗?,c#,observablecollection,C#,Observablecollection,在我的代码中,我处理的是可观测集合(作为System.Type)。那么我会: var args = propertyType.GetGenericArguments(); 为了了解我拥有的收藏类型,我正在进行以下测试: if (args.Count() != 0 && args[0] == typeof(string)) 我正在测试args是否为空,但我想问的是“当我处理ObservableCollection时,args列表是否可能为空?” 我不确定我问的是否清楚,如果不清

在我的代码中,我处理的是可观测集合(作为System.Type)。那么我会:

var args = propertyType.GetGenericArguments();
为了了解我拥有的收藏类型,我正在进行以下测试:

if (args.Count() != 0 && args[0] == typeof(string))
我正在测试args是否为空,但我想问的是“当我处理ObservableCollection时,args列表是否可能为空?”


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

如果可以保证
propertyType
始终是
typeof(observetecollection)
,则可以安全地假设args始终有一个元素。

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

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

因此,我建议这样做:

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