【问题标题】:How to compare generic types?如何比较泛型类型?
【发布时间】:2010-12-29 19:36:16
【问题描述】:

我有一个类,它有一些List<float>List<int> 等类型的属性。现在我正在通过反射查询该类的属性,以便获得PropertyInfo 的列表。

我想过滤类型为List<> 的类型。但是比较

propertyInfo.PropertyType == typeof(List<>)

失败。

我可以通过比较名称来解决这个问题,即以下比较有效:

propertyInfo.PropertyType.Name == typeof(List<>).Name

我认为应该有更好的方法来比较通用类型。有什么线索吗?

【问题讨论】:

    标签: c# generics


    【解决方案1】:

    你可以使用:

    Type type = propertyInfo.PropertyType;
    if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
    {
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多