我在访问另一个模块上的变量时出错



我有一个模块,它从数据网格中获取值,并将每一行的标签放入字符串数组中。我在另一个模块上调用数组字符串,但我得到的对象没有设置为对象的实例。为什么?我想要完成的是将所有标签组合成字符串或集合数组,并能够在另一个模块上访问它。

'my main module
Public Class myMainModule
   Public Shared myArray() As String
   ......
   .......
   Public sub doSomething()
     Dim myArray As New List(Of String)
     For Each row As DataGridViewRow In mydatagrid.Rows
         If row.Cells("mycheckbox").Value = True Then
             myArray.Add(row.Tag)
         End If
     Next
  End Sub
End Class

'....then i'm calling it from another module:
Public Class myOtherModule
   Public sub doit()
     For Each value As String In myMainModule.myArray
         Debug.Print(value)
     Next
   End Sub
End Class

您需要在尝试调用Array之前初始化它。目前是Nothing

Public Class MyMainModule
    Public Shared MyArray() As String
    Public Shared Sub DoSomething()
        Dim myList As New List(Of String)
        For Each row As DataGridViewRow In mydatagrid.Rows
         If row.Cells("mycheckbox").Value = True Then
             myList.Add(row.Tag)
         End If
        Next
        MyArray = myList.ToArray()
    End Sub
End Class
Public Class MyOtherModule
    Public Sub Foo()
        MyMainModule.DoSomething() 
        For Each value As String In MyMainModule.MyArray
            Debug.Print(value)
        Next
    End Sub
End Class

另一件事是你需要注意命名。我相信你会感到困惑因为你有一个叫做myArray的域,但也有一个叫做myArray的局部变量。您使用的是新创建的局部变量List(Of T),而不是数组。

相关内容

  • 没有找到相关文章

最新更新