Autor:
Andreas Rauch
Erstellt am:
16 Apr 2003 14:16
|
Neuerungen bei den Arrays
|
|
Bei VB.NET gibt es bei den Arrays einige Neuerungen. So ist die untere Feldgrenze z. B. immer 0, den Option Base-Befehl sowie das Schlüsselwort To gibt es nicht mehr. Der folgende Befehl definiert also einen Array mit 10 Elementen, da das unterste Element den Index 0 besitzt:
Dim aZahlen(9) As Integer |
Man kann die Größe und eventuelle Startwerte gleich mitdeklarieren:
Dim aZahlen() As Integer = {11,22,33,44} |
Die Initialisierungswerte werden dabei in geschweifte Klammern geschrieben. Es ist auch möglich, Klassen oder Strukturen mit New zu initialisieren.
In VB 6.0 konnte man einen Array mit einer festen Größe nicht mehr ändern. Dies geht jetzt durch den ReDim-Befehl.
Dim aZahlen(9) As Integer ReDim aZahlen(11)
|
Aber Achtung! Dabei werden die vorherigen Werte gelöscht, fügt man nicht das Schlüsselwort Preserve hinzu.
Dim aZahlen(9) As Integer ReDim Preserve aZahlen(11)
| Für die Deklaration multi-dimensionaler Arrays gilt: ReDim kann zwar die Anzahl der Elemente der einzelnen Dimensionen ändern, aber nicht die Anzahl der Dimensionen selbst. Außerdem kann ReDim Preserve nur die letzte Dimension ändern.
Die wichtigste Neuerung ist aber: Arrays basieren auf der Array-Klasse und besitzen dadurch einige interessante Zusatzfunktionen, wie z.B. die Sort-Methode.
Dazu ein Beispiel: Aus vier Teams in einem Array werden Begegnungen in einem Array namens aSpiele abgelegt und je nach Wunsch sortiert oder unsortiert ausgegeben.
Imports System.Console Public Class Array Private Shared aTeams() As String = {"Brasilien", "Deutschland", _ "Italien", "Irland"} Private Shared aSpiele() As String Shared Sub main() Dim i, j, sSpielNr As Short Write("Sortierte Ausgabe (J/N)?") Dim stEingabe As String = ReadLine() Dim SortModus As Boolean SortModus = stEingabe.Length = 1 AndAlso stEingabe.ToUpper = "J" For i = 0 To aTeams.GetLength(0) - 1 For j = i + 1 To aTeams.GetLength(0) - 1 ReDim Preserve aSpiele(sSpielNr) aSpiele(sSpielNr) = aTeams(i) & ":" & aTeams(j) sSpielNr += 1 Next j Next i If SortModus = True Then System.Array.Sort(aSpiele) For i = 0 To sSpielNr - 1 WriteLine("Begegnung Nr. {0}: {1}", i + 1, aSpiele(i)) Next End Sub End Class |
|
|