ProgrammierungVB.NET Entwickler

Wie werden Arrays und Sammlungen in Visual Basic implementiert? Vergleichen Sie Standardarrays, Collection, ArrayList und List(Of T) nach Möglichkeiten und Anwendung.

Bestehen Sie Vorstellungsgespräche mit dem Hintsage-KI-Assistenten

Antwort.

In Visual Basic gibt es mehrere Möglichkeiten zur Organisation von Datensätzen:

  • Standardarrays (Dim arr(10) As Integer): statische Größe, schneller Zugriff über Index, kann nicht dynamisch erweitert werden.

  • Collection (Objektsammlung): dynamisch erweiterbar, kann Elemente beliebiger Typen speichern (aber ohne strenge Typisierung), Zugriff über Schlüssel und Index, unterstützt For Each.

  • ArrayList (in VB.NET): veraltete Sammlung, speichert Objekte vom Typ Object, unterstützt keine Generics, erfordert Typumwandlung (Casting).

  • List(Of T) (in VB.NET): typisierte Sammlung, dynamische Größe, schneller Zugriff, unterstützt LINQ, typsicher.

Beispiele für die Verwendung:

Standardarray:

Dim numbers(4) As Integer numbers(0) = 10

Collection:

Dim coll As New Collection() coll.Add("apple") coll.Add(123) For Each item In coll Debug.Print(item) Next

ArrayList:

Dim arrList As New ArrayList() arrList.Add("abc") arrList.Add(123)

List(Of T):

Dim list As New List(Of Integer)() list.Add(10) list.Add(20) For Each num As Integer In list Console.WriteLine(num) Next

Trickfrage.

Welches Hauptproblem kann bei der Arbeit mit ArrayList im Vergleich zu List(Of T) auftreten?

Antwort: ArrayList speichert Elemente als Object, daher ist eine explizite Typumwandlung (Casting) beim Zugriff auf die Elemente erforderlich, was die Wahrscheinlichkeit erhöht, während der Laufzeit eine InvalidCastException zu erhalten. List(Of T) bietet die strenge Typisierung zur Compile-Zeit und schließt solche Fehler aus.

Dim arrList As New ArrayList() arrList.Add(100) ' Dim s As String = arrList(0) ' Laufzeitfehler Dim n As Integer = CType(arrList(0), Integer) ' OK

Beispiele für reale Fehler aufgrund von Unkenntnis der Feinheiten des Themas.


Geschichte

In einem Finanzsystem wurden aktiv Standardarrays zur Speicherung von Daten variabler Größe verwendet. Bei Überschreitung der zuvor zugewiesenen Größe wurden die Arrays "abgeschnitten", was zu Verlusten von Transaktionen während Spitzenbelastungen führte.


Geschichte

Bei der Arbeit mit ArrayList wurden sowohl Strings als auch Zahlen zur Sammlung hinzugefügt, und anschließend wurde versucht, die Summe der Elemente zu berechnen. Infolgedessen stürzte die Anwendung mit einer Ausnahme aufgrund der Typumwandlung ab, da Strings nicht mit Zahlen addiert werden können.


Geschichte

Collection wurde zur Speicherung von Bestellklassen verwendet, aber es wurden keine Typen der Elemente überprüft. In einem Modul wurde versehentlich ein Text anstelle eines Bestellobjekts hinzugefügt, was zu einem Ausfall der gesamten Geschäftslogik führte, als versuchte, Methoden eines nicht existierenden Objekts aufzurufen.