Sdílet prostřednictvím


Převody Array (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 hodnoty a typy odkazů.

  • 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 System.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šiřování a zužující převody (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.

tbatye4h.collapse_all(cs-cz,VS.110).gifZá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

Jak: převést objekt na jiný typ v jazyce Visual Basic

Referenční dokumentace

Souhrn typu dat (Visual Basic)

Funkce převodu typu (Visual Basic)

Koncepty

Datové typy jazyka Visual Basic

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

Převody mezi řetězce a jiné typy (Visual Basic)

Další zdroje

Převody typů jazyka Visual Basic

Matice v jazyce Visual Basic