2013-01-10 2 views
0

UDT를 선언했으며 UDT의 특정 레코드가있는 배열을 초기화해야합니다. 모듈 수준에서 어떻게 처리합니까? 여기 VB6에서 UDT의 배열 초기화

내가

Public Type MyType 
    id  As Integer 
    name As String 
    values As Double 
End Type 

private MY_TYPES(1) As MyType 
My_TYPES(0) = newMyType(1, "Item 1", 15.9) 
My_TYPES(1) = newMyType(2, "Item 2", 30.2) 

Private Function newMyType(byval id as Integer, byval name as String, _ 
          byval v as Double) As MyType 
    Dim t As MyType 
    t.id = id 
    t.name = name 
    t.value = v 
    newMyType = t 
End Function 

난 당신이 내가 List 또는 같은 자바 Collection의 정적 초기화 될 것을 재현 해 봅니다 그것을 볼 수 있듯이 Invalid outside procedure

입니다 얻을 오류를 시도한 것입니다 Set

나는 상수로 컬렉션을 공개하고 싶습니다. 어떻게하면 좋을까요?

+0

My_TYPES 배열에 할당하는 두 행은 프로 시저 외부에 쓸 수 없습니다. 이 함수는 newMyType 함수와 같은 함수/하위/속성 내에 있어야합니다. –

답변

3

당신은 UDT에게

My_TYPES(0) = newMyType(1, "Item 1", 15.9) 
My_TYPES(1) = newMyType(2, "Item 2", 30.2) 

을 초기화하기 위해서 하위에 다음 두 줄을 배치 한 다음 서브를 호출하거나 당신은 IF..THEN 내부 작업 하위에있는이 2 개 라인을 배치 할 수 있습니다 모듈 수준의 init 부울

+0

+1. 모듈이 클래스 인 경우 클래스가 자동으로 실행되도록 class_initialize에 줄을 넣을 수 있습니다. BAS 모듈에있는 경우 초기화를 직접 관리해야합니다. – MarkJ