2009-08-19 32 views

Odpowiedz

7

W tablicy wielowymiarowej w VB lub różnych interfejsach API wyprowadzanych z COM można wyszukiwać dolną granicę według wymiarów. Typy tablic mogą być oparte na 0 lub 1 (to jest zaczynając od zera lub 1) i dotyczy to również tablic wielowymiarowych.

Może to również dotyczyć tablic narażonych przez współdziałanie COM. Na przykład wiele interfejsów API programu Excel korzysta z tablic opartych na tabelach 1, a wiele funkcji API korzysta z tablic wariantowych jako parametrów (wariant został w zasadzie wynaleziony jako typ danych dla komórki arkusza kalkulacyjnego).

Podczas korzystania z interakcji COM nadal trzeba grać ładnie z tymi API i systemami typów. Zostały one pierwotnie zaprojektowane do użycia z VBA, a "klasyczne" warianty językowe VB4-6 miały prawdziwie barokowy system ze względu na ich ścisłe sprzężenie z COM. Systemy typu .Net z C# et. glin. są nieco mniej bolesne od swoich poprzedników opartych na COM, ale nadal odczuwasz ból podczas korzystania z COM interop.

+2

ty mispelled spłukany. :) – quillbreaker

+9

Ci pisał "źle napisany";) – Marc

+6

Nie, naprawdę miałem na myśli "barokowy" jak w "barokowej monstrualności", w przeciwieństwie do "jeśli nie jest barokowy, nie naprawiaj". ; -} – ConcernedOfTunbridgeWells

16

Teoretycznie można tworzyć tablice z dowolną dolną lub górną granicą do indeksowania. VB.NET może to wykorzystać do utworzenia tablic z dolną granicą 1, aby być kompatybilnym z niektórymi starszymi wersjami VB, ale można faktycznie użyć Array.CreateInstance(Type,Int32[],Int32[]), aby utworzyć tablicę z dowolną niższą granicą.

3

Jest jedna CreateInstance wezwanie, które ustawia niezerowe dolne granice:

CreateInstance(Type, Int32[], Int32[])
Tworzy wielowymiarową tablicę określonych długościach typ i wymiary, z podanych dolnych granicach.

Porównaj to:

CreateInstance(Type, Int32[])
Tworzy wielowymiarową tablicę określonych długościach typów i wymiarów, z indeksowaniem zera. Długości wymiarów są określone w tablicy 32-bitowych liczb całkowitych.

(lub którykolwiek z pozostałych przeciążeń w rzeczywistości. Spośród sześciu CreateInstance przeciążeń, pięć utworzyć tablicę liczone od zera).