2012-03-15 79 views
0

我知道标题似乎微不足道,但我有一个问题,我似乎无法避开它,我有一个子过程中的以下代码..在程序开发变量的全局

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的价值,我不知道如何使这个全球性,以便它会这样做。这些值是空白的,因为我无法全局初始化它们。

任何帮助?

回答

0

将a1,a2 ...声明为一个全局变量(无论您是全局的意思)。然后在类的构造函数,你可以分配一个值给他们:

Sub New() 
    '.... 
    a1 = New ... 
    '.... 

如果这些变量是共享的,您可以使用共用的构造。

如果需要重新计算变量,那么使它们成为只读属性可能是一个好主意。

0

这个问题是全球性的什么?班级本身?

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 

末级

现在,他们都是静态的,跨类的所有实例共享。

希望有所帮助。