Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U kunt een matrixtype converteren naar een ander matrixtype, mits u aan de volgende voorwaarden voldoet:
Gelijke rang. De rangschikkingen van de twee matrices moeten hetzelfde zijn, dat wil gezegd, ze moeten hetzelfde aantal dimensies hebben. De lengten van de respectieve dimensies hoeven echter niet hetzelfde te zijn.
Element gegevenstype. De gegevenstypen van de elementen van beide matrices moeten verwijzingstypen zijn. U kunt een
Integermatrix niet converteren naar eenLongmatrix of zelfs naar eenObjectmatrix, omdat er ten minste één waardetype bij betrokken is. Zie Waardetypen en referentietypen voor meer informatie.Converteerbaarheid. Een conversie, ofwel verbreding of verenging, moet mogelijk zijn tussen de elementtypen van de twee arrays. Een voorbeeld waarbij deze vereiste mislukt, is een poging tot conversie tussen een
Stringmatrix en een matrix van een klasse die is afgeleid van System.Attribute. Deze twee typen hebben niets gemeen en er bestaat geen conversie van welke aard dan ook.
Een conversie van het ene arraytype naar het andere is verbredend of vernauwend, afhankelijk van of de conversie van de betreffende elementen verbredend of vernauwend is. Zie verbredings- en vernauwingsconversies voor meer informatie.
Conversie naar een objectmatrix
Wanneer u een Object matrix declareert zonder deze te initialiseren, is Object het elementtype zolang deze niet geïnitialiseerd blijft. Wanneer u het instelt op een array van een specifieke klasse, neemt het het type van die klasse over. Het onderliggende type is echter nog steeds Objecten u kunt het vervolgens instellen op een andere matrix van een niet-gerelateerde klasse. Aangezien alle klassen zijn afgeleid van Object, kunt u het elementtype van de matrix wijzigen van elke klasse in een andere klasse.
In het volgende voorbeeld bestaat er geen conversie tussen typen student en String, maar beide zijn afgeleid van Object, zodat alle toewijzingen geldig zijn.
' 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.
Onderliggend type van een array
Als u oorspronkelijk een matrix met een specifieke klasse declareert, is het onderliggende elementtype die klasse. Als u deze vervolgens instelt op een matrix van een andere klasse, moet er een conversie tussen de twee klassen zijn.
In het volgende voorbeeld students is dit een student matrix. Omdat er geen conversie bestaat tussen String en student, mislukt de laatste instructie.
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