Dela via


Anvisningar: Tilldela en matris till en annan matris (Visual Basic)

Eftersom matriser är objekt kan du använda dem i tilldelningsinstruktioner som andra objekttyper. En matrisvariabel innehåller en pekare till data som utgör matriselementen och informationen om rangordning och längd, och en tilldelning kopierar endast den här pekaren.

Tilldela en matris till en annan matris

  1. Kontrollera att de två matriserna har samma rangordning (antal dimensioner) och kompatibla elementdatatyper.

  2. Använd en standardtilldelningsinstruktor för att tilldela källmatrisen till målmatrisen. Följ inte något av matrisnamnen med parenteser.

    Dim formArray() As System.Windows.Forms.Form
    Dim controlArray() As System.Windows.Forms.Control
    controlArray = formArray
    

När du tilldelar en matris till en annan gäller följande regler:

  • Lika många. Målmatrisens rangordning (antal dimensioner) måste vara samma som för källmatrisen.

    Förutsatt att rangordningen för de två matriserna är lika med, behöver dimensionerna inte vara lika med. Antalet element i en viss dimension kan ändras under tilldelningen.

  • Elementtyper. Båda matriserna måste antingen ha referenstypelement eller så måste båda matriserna ha värdetypselement . Mer information finns i Värdetyper och Referenstyper.

    • Om båda matriserna har värdetypselement måste elementdatatyperna vara exakt samma. Det enda undantaget är att du kan tilldela en matris med Enum element till en matris av bastypen för den Enum.

    • Om båda matriserna har referenstypelement måste källelementtypen härledas från målelementtypen. När så är fallet har de två matriserna samma arvsrelation som sina element. Detta kallas matriskovarians.

Kompilatorn rapporterar ett fel om ovanstående regler överträds, till exempel om datatyperna inte är kompatibla eller om rangordningarna är ojämlika. Du kan lägga till felhantering i koden för att se till att matriserna är kompatibla innan du försöker utföra en tilldelning. Du kan också använda nyckelordet TryCast-operator om du vill undvika att utlösa ett undantag.

Se även