Im folgenden Code
For i = LBound(arr) To UBound(arr)
Welchen Sinn hat es zu fragen, indem man LBound
? Sicherlich ist das immer 0.
Im folgenden Code
For i = LBound(arr) To UBound(arr)
Welchen Sinn hat es zu fragen, indem man LBound
? Sicherlich ist das immer 0.
Dafür gibt es einen guten Grund NICHT ZU VERWENDEN For i = LBound(arr) To UBound(arr)
dim arr(10)
weist elf Mitglieder des Arrays zu, 0 bis 10 (unter Annahme der VB6-Standardoption Base).
Viele VB6-Programmierer gehen davon aus, dass das Array einbasig ist, und verwenden nie die zugewiesenen arr(0)
. Wir können eine potenzielle Fehlerquelle beseitigen, indem wir For i = 1 To UBound(arr)
o For i = 0 To UBound(arr)
, denn dann ist klar, ob arr(0)
verwendet wird.
For each
macht eine Kopie von jedem Array-Element, anstatt eines Zeigers.
Dies hat zwei Probleme.
Wenn wir versuchen, einem Array-Element einen Wert zuzuweisen, wird dieser nicht im Original angezeigt. Dieser Code weist der Variablen einen Wert von 47 zu i
, wirkt sich aber nicht auf die Elemente von arr
.
arr = Array(3,4,8)
for each i in arr
i = 47
next i
Response.Write arr(0) '- returns 3, not 47
for each
und wir haben keine Garantie für die Reihenfolge der Elemente (obwohl sie in Ordnung zu sein scheint).LBound
muss nicht immer 0 sein.
Während es in VBScript nicht möglich ist, ein Array zu erstellen, das eine andere untere Grenze als 0 hat, ist es dennoch möglich, ein Array von Varianten von einer COM-Komponente abzurufen, die möglicherweise eine andere LBound
.
Allerdings bin ich noch nie einem begegnet, der so etwas getan hat.
Wahrscheinlich stammt es aus VB6. Denn mit Option Basis Anweisung in VB6 können Sie die untere Grenze von Arrays wie folgt ändern:
Option Base 1
Auch in VB6 können Sie die untere Grenze eines bestimmten Arrays wie folgt ändern:
Dim myArray(4 To 42) As String
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.