Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können einen Arraytyp in einen anderen Arraytyp konvertieren, sofern Sie die folgenden Bedingungen erfüllen:
Gleich Rang. Die Rangfolgen der beiden Arrays müssen identisch sein, d. h. sie müssen dieselbe Anzahl von Dimensionen haben. Die Längen der jeweiligen Abmessungen müssen jedoch nicht identisch sein.
Elementdatentyp. Die Datentypen der Elemente beider Arrays müssen Referenztypen sein. Sie können ein
IntegerArray nicht in einLongArray oder sogar in einObjectArray konvertieren, da mindestens ein Werttyp beteiligt ist. Weitere Informationen finden Sie unter Werttypen und Referenztypen.Konvertierbarkeit. Eine Konvertierung, entweder Verbreiterung oder Eingrenzung, muss zwischen den Elementtypen der beiden Arrays möglich sein. Ein Beispiel, bei dem diese Anforderung fehlschlägt, ist der Versuch einer Konvertierung zwischen einem
String-Array und einem Array einer Klasse, die von System.Attribute abgeleitet ist. Diese beiden Typen haben nichts gemeinsam, und es gibt keine Konvertierung jeglicher Art zwischen ihnen.
Die Umwandlung eines Arraytyps in einen anderen ist entweder eine Verbreiterung oder eine Verkleinerung, abhängig davon, ob die Umwandlung der jeweiligen Elemente eine Verbreiterung oder eine Verkleinerung darstellt. Weitere Informationen finden Sie unter Widening and Narrowing Conversions.
Konvertierung in ein Objektarray
Wenn Sie ein Object Array deklarieren, ohne es zu initialisieren, ist Object der Elementtyp so lange, wie es nicht initialisiert bleibt. Wenn Sie es auf ein Array einer bestimmten Klasse festlegen, übernimmt sie den Typ dieser Klasse. Der zugrunde liegende Typ besteht jedoch weiterhin als Object, und Sie können ihn anschließend auf ein Array einer anderen, unabhängigen Klasse festlegen. Da alle Klassen von Object abgeleitet sind, können Sie den Elementtyp des Arrays von einer beliebigen Klasse in jede andere Klasse anpassen.
Im folgenden Beispiel gibt es keine Konvertierung zwischen den Typen student und String. Beide leiten sich jedoch von Object ab, sodass alle Zuordnungen gültig sind.
' Assume student has already been defined as a class.
Dim testArray() As Object
' testArray is still an Object array at this point.
Dim names() As String = New String(3) {"Name0", "Name1", "Name2", "Name3"}
testArray = New student(3) {}
' testArray is now of type student().
testArray = names
' testArray is now a String array.
Zugrunde liegender Typ eines Arrays
Wenn Sie ein Array ursprünglich mit einer bestimmten Klasse deklarieren, ist der zugrunde liegende Elementtyp diese Klasse. Wenn Sie es anschließend auf ein Array einer anderen Klasse festlegen, muss eine Konvertierung zwischen den beiden Klassen vorhanden sein.
Im folgenden Beispiel students handelt es sich um ein student Array. Da keine Konvertierung zwischen String und student vorhanden ist, schlägt die letzte Anweisung fehl.
Dim students() As student
Dim names() As String = New String(3) {"Name0", "Name1", "Name2", "Name3"}
students = New Student(3) {}
' The following statement fails at compile time.
students = names