Partilhar via


Como atribuir uma matriz a outra matriz (Visual Basic)

Como as matrizes são objetos, você pode usá-las em instruções de atribuição como outros tipos de objeto. Uma variável de matriz manté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. Certifique-se de que as duas matrizes tenham 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 siga nenhum dos nomes da matriz entre parênteses.

    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:

  • Escalõ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 fileiras das duas matrizes sejam iguais, as dimensões não precisam ser iguais. O número de elementos em uma determinada dimensão pode mudar durante a atribuição.

  • Tipos de elementos. 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 de elemento deverão ser exatamente os mesmos. A única exceção a isso é que você pode atribuir uma matriz de Enum elementos a uma matriz do tipo base desse 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 este é 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 relata um erro se as regras acima forem violadas, por exemplo, se os tipos de dados não forem compatíveis ou as classificações forem desiguais. Você pode adicionar tratamento de erros ao seu código para certificar-se de que as matrizes são 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.

Consulte também