2009-08-19 2 views

답변

7

VB 또는 다양한 COM 파생 API에서 다차원 배열의 경우 차원을 기준으로 하한을 쿼리 할 수 ​​있습니다. 배열 유형은 0 또는 1을 기반으로 할 수 있으며 (즉, 0 또는 1부터 시작) 다차원 배열에도 적용됩니다.

COM interop를 통해 노출 된 배열에도 적용 할 수 있습니다. 예를 들어 많은 Excel API는 1 기반 배열을 사용하고 많은 API 함수는 변형 배열을 매개 변수로 사용합니다 (변형은 기본적으로 스프레드 시트 셀의 데이터 유형으로 개발되었습니다).

COM 상호 운용성을 사용하는 경우에도 이러한 API 및 유형 시스템을 사용하면 멋지게 재생해야합니다. 원래 VBA와 함께 사용하도록 설계되었으며 '고전적인'VB4-6 언어 변형은 COM과의 긴밀한 결합으로 인해 진정으로 바로크 식 유형 시스템을가집니다. .NET 형식의 C# et 시스템 al. COM 기반의 이전 제품보다 다소 고통스럽지 않지만 COM interop을 사용할 때 여전히 고통을 느끼게됩니다.

+2

당신은 파산 mispelled. :) – quillbreaker

+9

철자가 잘못되었습니다;) – Marc

+6

아니, '바로크 양식이 아니라면'바로크 양식의 괴물 '과 마찬가지로'바로크 양식 '을 의미했습니다. ; -} – ConcernedOfTunbridgeWells

16

이론적으로 인덱싱을 위해 상한선이나 하한선을 사용하여 배열을 만들 수 있습니다. VB.NET은 이것을 사용하여 더 낮은 VB 버전과 호환되도록 1의 더 낮은 경계를 가진 배열을 만들 수 있지만 실제로는 Array.CreateInstance(Type,Int32[],Int32[])을 사용하여 원하는 바운더리의 배열을 만들 수 있습니다.

3

비 제로 하한을 설정 한 CreateInstance 호출 있습니다 :

CreateInstance(Type, Int32[], Int32[])
지정된 하한으로 지정된 유형과 차원 길이의 다차원 배열을 작성가.

CreateInstance(Type, Int32[])
제로 기반 색인에 지정된 유형과 차원 길이의 다차원 배열을 작성합니다 :

은이 비교. 차원 길이는 32 비트 정수 배열로 지정됩니다. (여섯 CreateInstance 오버로드, 오는 0부터 시작하는 배열을 생성 사실 다른 오버로드의에.. 또는)

관련 문제