Vb.net 从不同子系统中访问变量

Vb.net 从不同子系统中访问变量,vb.net,Vb.net,我有这个 Public Class posData Public Property strLabel As String Public Property strX As String Public Property strY As String Public Property blnAvail As Boolean Public Sub New(ByVal strLabelID As String, ByVal X As Integer, ByVal Y

我有这个

Public Class posData
    Public Property strLabel As String
    Public Property strX As String
    Public Property strY As String
    Public Property blnAvail As Boolean

    Public Sub New(ByVal strLabelID As String, ByVal X As Integer, ByVal Y As Integer)
        Me.strLabel = strLabelID
        ' Format = "<PinX F='53mm'></PinX>", "<PinY F='204mm'></PinY>"
        Me.strX = "<PinX F='" & X.ToString & "mm'></PinX>"
        Me.strY = "<PinY F='" & Y.ToString & "mm'></PinY>"
        Me.blnAvail = True
    End Sub

End Class
以此类推,但是我想调用此方法并填充button click sub中的列表,因此我已将此添加到button click事件中

 Dim MyPosList As New HashSet(Of posData)
 SetUpCoords(MyPosList)
然后我想循环遍历我列表中的所有对象,这样我在posList中的每个位置都有一个,在这里面是问题发生的地方,我想能够写这样的东西,a1.blnavail,这不会发生。但是,我知道我可以使用position.blnavail,但我需要硬编码位置,以便我的逻辑正确工作,我做错了什么


谢谢:)

难道你不能使用另一种数据结构,比如字典,它使用一个键吗?然后,您可以使用a1等键为每个项目设置关键帧,并使用该键访问for循环中的项目

这个结构和hashset有什么区别?键是否会被编码为字符串?字典是泛型类型,因此您可以选择键类型和值类型:Dim myDictionary作为新字典(字符串,posData)。如果position.blnAvail为False,这是我在循环中的条件之一,而不是position.blnAvail我想说a1.avail?使用字典可以解决这个问题,然后字典允许您通过其键访问项目:dim currentPos as posData如果myDictionary.TryGetValue(“A1”,currentPos),那么如果currentPos.blnAvail,那么…啊,我明白了!!是否可以对多个位置执行此操作,例如mydictionary.trygetvalue(“A1”,currentPos)和mydictionary.trygetvalue(“A2”,currentPos)
 Dim MyPosList As New HashSet(Of posData)
 SetUpCoords(MyPosList)