2012-03-15 2 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 좌표의 값을 가져와야합니다. 그렇게 할 수 있도록이 전역을 만드는 방법을 모릅니다. 전역으로 초기화 할 수 없기 때문에 값이 비어 있습니까?

어떤 도움말이 필요합니까?

답변

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 

최종 클래스는 이제 그들은 정적 클래스의 모든 인스턴스에서 공유됩니다.

희망이 있습니다.