2012-03-15 53 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 

末級

現在,他們都是靜態的,跨類的所有實例共享。

希望有所幫助。