Vb.net 使过程中的变量成为全局变量

Vb.net 使过程中的变量成为全局变量,vb.net,Vb.net,我知道标题似乎很琐碎,但我有一个问题,我似乎无法回避,我在一个子过程中有以下代码 Dim X, Y As Integer X = 32 Y = 285 X_coords(0) = X ' x1 (a1) X_coords(1) = X - 13 ' x2 (a2) X_coords(2) = X + 16 ' x3 (a3) X_coords(3) = X + 63 ' x4 (b1) X_coords(4) = X

我知道标题似乎很琐碎,但我有一个问题,我似乎无法回避,我在一个子过程中有以下代码

  Dim X, Y As Integer
    X = 32
    Y = 285

    X_coords(0) = X       ' x1 (a1)
    X_coords(1) = X - 13  ' x2 (a2)
    X_coords(2) = X + 16  ' x3 (a3)
    X_coords(3) = X + 63  ' x4 (b1)
    X_coords(4) = X + 45  ' x5 (b2)
    X_coords(5) = X + 74  ' x6 (b3)
    X_coords(6) = X + 124 ' x7 (c1)
    X_coords(7) = X + 103 ' x8 (c2)
    X_coords(8) = X + 132 ' x9 (c3)
    X_coords(9) = X + 63  ' x10 (b4)
    X_coords(10) = X + 76 ' x11 (y3)
    X_coords(11) = X + 21  ' x12 (n1)
    X_coords(12) = X + 9 ' x13 (q1)
    X_coords(13) = X + 65 ' x14 (q3)
    X_coords(14) = X + 117 ' x14 (q5)
    X_coords(15) = X + 87 ' x14 (q4)
    X_coords(16) = X + 31 ' x13 (q2)
    X_coords(17) = X + 139 ' x13 (q6)
    X_coords(18) = X + 76 ' x13 (q6)
    X_coords(19) = X + 129 ' x13 (q6)


    Y_coords(0) = Y        ' y1s1
    Y_coords(1) = Y - 23   ' y1s2
    Y_coords(2) = Y - 11.5 ' y1,2s
    Y_coords(3) = Y - 47   ' y2s1
    Y_coords(4) = Y - 70   ' y2s2
    Y_coords(5) = Y - 59 ' y2,2s 
    Y_coords(6) = Y - 132  ' y4s1
    Y_coords(10) = Y - 152  ' y4s2
    Y_coords(7) = Y - 140 ' y4 30cred
    Y_coords(8) = Y - 127 ' y4s1, 10cred
    Y_coords(9) = Y - 105 ' y3



    Dim a1 As New posData("a1", X_coords(0), Y_coords(0))
    Dim a2 As New posData("a2", X_coords(1), Y_coords(0)) 
    Dim a3 As New posData("a3", X_coords(2), Y_coords(0))
    Dim a4 As New posData("a4", X_coords(0), Y_coords(0)) 
我知道如何在你的类中创建全局变量,我想使a1、a2等成为全局变量,但他们必须采用所述X_坐标和Y坐标的值,我不知道如何使这个全局变量成为全局变量,这样它才能这样做。。值为空,因为我无法全局初始化它们


有什么帮助吗?

声明a1、a2。。。作为一个全局变量(无论您所说的全局变量是什么)。然后在类的构造函数中,可以为它们赋值:

Sub New()
    '....
    a1 = New ...
    '....
如果这些变量是共享的,则可以使用共享构造函数


如果需要重新计算变量,最好将其设置为只读属性。

问题是什么?班级本身

Public Class MyClass

Private a1 As posData
Private a2 As posData
Private a3 As posData
Private a4 As posData

Public Function SetVariables()

    'blah blah

    a1 = New posData("a1", X_coords(0), Y_coords(0))
    a2 = New posData("a2", X_coords(1), Y_coords(0))
    a3 = New posData("a3", X_coords(2), Y_coords(0))
    a4 = New posData("a4", X_coords(0), Y_coords(0))
End Function
末级

这些变量可用于该类当前实例中的任何函数

您的应用程序是否具有全局性

Public Class MyClass

Public Shared a1 As posData
Public Shared a2 As posData
Public Shared a3 As posData
Public Shared a4 As posData

Public Function SetVariables()

    'blah blah

    a1 = New posData("a1", X_coords(0), Y_coords(0))
    a2 = New posData("a2", X_coords(1), Y_coords(0))
    a3 = New posData("a3", X_coords(2), Y_coords(0))
    a4 = New posData("a4", X_coords(0), Y_coords(0))
End Function
末级

现在它们是静态的,并在类的所有实例中共享

希望有帮助