当前位置 : 主页 > 编程语言 > c语言 >

vb.net – Option Strict On禁止与system.array进行后期绑定

来源:互联网 收集:自由互联 发布时间:2021-06-24
我有以下代码返回wmi信息(未知数组) For Each objMgmt In oquery.Get() For Each theproperty In objMgmt.Properties If (TypeOf objMgmt(theproperty.Name) Is System.Array) Then myrow(theproperty.Name) = ConvertArray(CType(objMgmt(thep
我有以下代码返回wmi信息(未知数组)

For Each objMgmt In oquery.Get()
  For Each theproperty In objMgmt.Properties
    If (TypeOf objMgmt(theproperty.Name) Is System.Array) Then
      myrow(theproperty.Name) = ConvertArray(CType(objMgmt(theproperty.Name), Array)).Trim
    end if                      
  next
next

函数ConvertArray将其转换为字符串值.

Function ConvertArray(ByVal myarray As System.Array) As String
    Dim tel As Integer
    Dim res As String = ""
    If myarray.Length = 0 Then
        Return ""
    End If
    If myarray.Length = 1 Then
        res = myarray(0).ToString
    Else
        For tel = 0 To myarray.Length - 1
            If TypeOf myarray(tel) Is UInt16 Then
                res = res + "[" + CType(myarray(tel), UInt16).ToString + "] , "
            Else
                res = res + CStr(myarray(tel)) + " , "
            End If
        Next
        res = Mid(res, 1, Len(res) - 2)
    End If
    Return res
End Function

当我明确打开选项时,“myarray(tel)”给出“Option Strict On禁止后期绑定”问题.
我如何解决这个问题,wmi会根据查询返回整数或字符串.

您可以执行myarray.GetValue(0)而不是myArray(0).即使使用Option Strict On,这也可以使用.
网友评论