Compartilhar via


Como atribuir uma matriz a outra matriz (Visual Basic)

Como matrizes são objetos, você pode usá-las em instruções de atribuição como outros tipos de objeto. Uma variável de matriz contém um ponteiro para os dados que constituem os elementos da matriz e as informações de classificação e comprimento, e uma atribuição copia apenas esse ponteiro.

Para atribuir uma matriz a outra matriz

  1. Verifique se as duas matrizes têm a mesma classificação (número de dimensões) e tipos de dados de elementos compatíveis.

  2. Use uma instrução de atribuição padrão para atribuir a matriz de origem à matriz de destino. Não coloque nenhum parênteses após o nome da matriz.

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

Quando você atribui uma matriz a outra, as seguintes regras se aplicam:

  • Classificações iguais. A classificação (número de dimensões) da matriz de destino deve ser a mesma da matriz de origem.

    Desde que as classificações das duas matrizes sejam iguais, as dimensões não precisarão ser iguais. O número de elementos em uma determinada dimensão pode ser alterado durante a atribuição.

  • Tipos de elemento. Ambas as matrizes devem ter elementos de tipo de referência ou ambas as matrizes devem ter elementos de tipo de valor. Para obter mais informações, consulte Tipos de Valor e Tipos de Referência.

    • Se ambas as matrizes tiverem elementos de tipo de valor, os tipos de dados do elemento deverão ser exatamente iguais. A única exceção a isso é que você pode atribuir uma matriz de elementos Enum a uma matriz do tipo base do Enum.

    • Se ambas as matrizes tiverem elementos de tipo de referência, o tipo de elemento de origem deverá derivar do tipo de elemento de destino. Quando é esse o caso, as duas matrizes têm a mesma relação de herança que seus elementos. Isso é chamado de covariância de matriz.

O compilador relatará um erro se as regras acima forem violadas, por exemplo, se os tipos de dados não forem compatíveis ou se as classificações forem diferentes. Você pode adicionar tratamento de erros ao código para garantir que as matrizes sejam compatíveis antes de tentar uma atribuição. Você também pode usar a palavra-chave TryCast Operator se quiser evitar lançar uma exceção.

Confira também