使过程中的变量全局化



我知道标题看起来很琐碎,但我有一个问题,我似乎无法解决,我在一个子过程中有以下代码。。

  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_coords和Y coords的值,我不知道如何使其为全局变量。值为空,因为我无法全局初始化它们?

有什么帮助吗?

将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

终端类

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

希望能有所帮助。

最新更新