Sdílet prostřednictvím


Převody pole (Visual Basic)

Typu pole lze převést na jiné pole typu za předpokladu splnění následujících podmínek:

  • Stejné pořadí. Pořadí dvou matic, musí být stejné, tj, musí mít stejný počet rozměrů.Délky příslušné dimenze není nutné být stejné.

  • Typ datového prvku. Datové typy prvků obě pole musí být typu odkaz.Nelze převést Integer do pole Long array nebo dokonce k Object array, protože se účastní alespoň jednu hodnotu typu.Další informace naleznete v tématu Typy hodnot a typy odkazu.

  • Konvertibility. Převod, rozšíření nebo zúžení, musí být mezi typy prvků dvou polí.Pokus o převod mezi je příklad, který tento požadavek String matice a matice třídy odvozené z Attribute.Tyto dva typy mít nic společného a mezi nimi existuje bez převodu jakéhokoli druhu.

Rozšíření nebo zúžení v závislosti na tom, zda je převod odpovídajících prvků rozšíření nebo zúžení převodu typu jednoho pole do druhého.Další informace naleznete v tématu Rozšíření a zúžení převodů (Visual Basic).

Převod objektu matice

Když deklarujete Object pole beze jej jeho typ prvku je Object tak dlouho, dokud zůstane neinicializované.Nastavit na matici určité třídy, trvá na typu třídy.Jeho základní typ je stále Object, a následně nastavit ji na jiné pole nesouvisející třídy.Protože všechny třídy odvodit z Object, můžete změnit typ prvku pole z libovolné třídy do jiné třídy.

V následujícím příkladu existuje žádná konverze mezi typy student a String, ale obě odvozena z Object, takže všechny jsou platná.

' 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.

Základní typ pole

Pokud deklarujete původně pole s konkrétní třídy, je jeho základní typ prvku třídy.Následně nastavíte na jiné třídy matici, musí být převod mezi dvěma třídami.

V následujícím příkladu students je student pole.Protože neexistuje žádný převod mezi String a student, poslední příkaz nezdaří.

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

Viz také

Úkoly

Postupy: Převedení objektu na jiný typ v jazyce Visual Basic

Referenční dokumentace

Souhrn datových typů (Visual Basic)

Funkce pro převod typů (Visual Basic)

Koncepty

Datové typy v jazyce Visual Basic

Implicitní a explicitní převody (Visual Basic)

Převody mezi řetězci a ostatními typy (Visual Basic)

Další zdroje

Převody typů v jazyce Visual Basic

Pole v jazyce Visual Basic