如何知道PropertInfo(反射)中的属性是否为数组



我得到了一个这样的类:

<Serializable()> Public Class SACCVar

Private _Code_Produit As String
Private _Voie_Ana_Name(6) As String
Public Property Voie_Ana_Name(index As Integer) As String
    Get
        Return _Voie_Ana_Name(index)
    End Get
    Set(value As String)
        _Voie_Ana_Name(index) = value
    End Set
End Property
 Public Property Code_Produit As String
        Get
            Return _Code_Produit
        End Get
        Set(value As String)
             _Code_Produit = value
         End Set
    End Property
    End Class

然后我想使用以下命令循环遍历类属性:

dim saccdata as SACCVar
Dim VarType As Type = GetType(SACCVar)
Dim properties As PropertyInfo() = VarType.GetProperties()
 For Each proper As PropertyInfo In properties
    proper.GetValue(SaccData, {0})
 next

但是使用getvalue,如果我想获得code_produit,我必须设置nothing来代替{0},因为它不是一个数组。

因此,我的问题是如何检测正确是否为数组?

感谢

您必须使用PropertyInfo.PropertyType属性检索属性的类型。然后可以使用Type.IsArray属性来检查该类型是否为数组。

For Each proper As PropertyInfo In properties
   If proper.PropertyType.IsArray Then
      [...]
   End If
next

相关内容

  • 没有找到相关文章

最新更新