In der tatsächlichen Programmierung sind Arrays Objekte, die häufig verwendet werden. Wie Array, List usw. sind sie alle Kapselungen von Arrays.
Werfen wir einen Blick auf die folgenden beiden Definitionsmethoden. Können wir den Unterschied zwischen ihnen erkennen?
Dimmen Sie tB1() als Byte
Dim tB2() As Byte = {}
Beide definieren ein Byte-Array, und das Array enthält keine Elemente.
Der Unterschied ist jedoch in den folgenden beiden Sätzen zu erkennen.
Debug.Print(tB1 ist nichts)
Debug.Print(tB2 ist nichts)
Das Ergebnis des ersten Satzes ist wahr und das Ergebnis des zweiten Satzes ist falsch. Beachten Sie, dass tB1 ein Array ist, aber nicht initialisiert wurde. tB2 ist ein Array. Obwohl es keine Elemente enthält, ist es nicht äquivalent zu Nothing Länge, und das Ergebnis ist 0, was darauf hinweist, dass es sich um ein leeres Array handelt. Der Zugriff auf andere Attribute von tB1, wie z. B. die Länge, führt zu einem Fehler.
An vielen Stellen gibt es immer noch Unterschiede zwischen leeren Arrays und nicht initialisierten Arrays.
Zum Beispiel:
Debug.Print(System.Text.Encoding.Default.GetString(tB1))
Debug.Print(System.Text.Encoding.Default.GetString(tB2))
Obwohl tB1 und tB2 keine Elemente enthalten, löst das System eine Ausnahme aus, da tB1 nicht initialisiert ist. Obwohl tB2 keine Elemente enthält, stellt es ein Array mit 0 Elementen dar. Das System löst keine Ausnahme aus und gibt keine leere Zeichenfolge zurück.
Daraus ist ersichtlich, dass es immer noch einen Unterschied zwischen Nothing und einem Array mit 0 Elementen gibt. Dies ist etwas, das wir leicht übersehen.