2012-06-04 7 views
0

원래 VB6에서 Variant 배열이었던 배열이 있습니다. VB6에서SetValue/GetValue 대 인수를 통해 배열에 직접 액세스하기

예 번호 :

ListBoxDrawings.List(X1, Y1) = myArray(X2, Y2) 
myArray(A, B) = ListBoxDrawings.List(I, C) 

ArtinSoft's VBUC 통해 실행 한 후, 그 값은 & GetValueSetValue 사용하여 처리된다. VB.NET에서

예제 코드 : VB.NET는 변형을하지 않기 때문에 이 (ListView에로의 변환을 무시는)

ListViewDrawings.Items(X1).SubItems(Y1).Text = CStr(myArray.GetValue(X2, Y2)) 
myArray.SetValue(ListViewDrawings.Items(I).SubItems(C).Text, A, B) 

, 나는 배열은 2 차원 문자열 배열로 입력되어야한다는 것을 알아 냈어 . GetValue/SetValue를 사용할 이유가없는 것 같습니다. 전자는 Object를 반환하고 후자는 Object를 가져옵니다. 이것은 오류를 가져올 수있는 무의미한 추가 단계처럼 보이는 변수에 할당하려는 경우 반환 된 객체를 문자열 (Cstr)로 형 변환해야한다는 것을 의미합니다. 또한 메소드에 많은 오버로드가 있기 때문에 코드가 명확하지 않을 수 있습니다. SetValue/GetValue을 사용하면 어떤 이점이 있습니까? 아니면 그냥 VBUC의 변형을 변환하고 원본 코드처럼 배열에 직접 액세스하는 것으로 간주해야합니까?/받기 설정 방법이없는

VB.NET :

ListViewDrawings.Items(X1).SubItems(Y1).Text = myArray(X2, Y2) 
myArray(A, B) = ListViewDrawings.Items(I).SubItems(C).Text 

답변

1

도랑 확실히 문자열에 찬성 개체. 변환 도구는 거의 항상 Variant를 Object로 처리합니다. VB6에서는 .NET Object와 마찬가지로 Variant가 범용 유형이기 때문입니다.

+0

그래서 GetValue/SetValue 메서드를 사용하지 않아도됩니다. – Wingman4l7

+1

GetValue/SetValue에는 이점이 없으며 지적한 바와 같이 많은 단점이 있으므로 강력한 형식의 String 배열을 대신 사용하십시오. – tcarvin

관련 문제