Conversões de matriz (Visual Basic)

Você pode converter uma matriz digite em um tipo diferente de array fornecido a você atender as seguintes condições:

  • Classificação igual. As classificações das duas matrizes devem ser iguais, ou seja, eles devem ter o mesmo número de dimensões. No entanto, os comprimentos das respectivas dimensões não precisam ser o mesmo.

  • Elemento de dados Tipo. Os tipos dos elementos de ambos os conjuntos de dados devem ser de tipos de referência. Não é possível converter um Integer array para um Long array ou mesmo um Object de array, pois pelo menos um tipo de valor está envolvido. For more information, see Implementação de tipos de dados (Visual Basic).

  • Convertibility. Uma conversão, ampliando ou estreitando, deve ser possível entre os tipos de elemento de duas matrizes. Um exemplo que falha a esse requisito é uma tentativa de conversão entre um String matriz e uma matriz de uma classe derivada de System.Attribute. Esses dois tipos nada têm em comum, e nenhuma conversão de qualquer tipo existe entre eles.

Uma conversão de tipo de um array para outro é alargamento ou restringir dependendo da conversão dos respectivos elementos ampliando ou estreitando. For more information, see Conversões de expansão e restrição (Visual Basic).

Conversão de uma matriz de objeto

Quando você declara uma Object matriz sem inicializá-lo, seu tipo de elemento é Object , contanto que permaneça não inicializada. Quando você defini-la para uma matriz de uma classede específica, ele tem o tipo de classe. No entanto, seu tipo subjacente ainda é Object, e subseqüentemente defini-la a outra matriz de uma classede relacionado. Desde que todas as classes derivar Object, você pode alterar o tipo de elemento da matriz de qualquer classe para outra classe.

No exemplo a seguir, não existe uma nenhuma conversão entre tipos de student e String, mas ambos derivam da Object, portanto, todas as atribuições são válido.

' 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.

O Tipo de uma matriz subjacente

Se você originalmente declarar uma matriz com uma classede específica, seu tipo de elemento subjacente é aquela classe. Se você subseqüentemente a definir como uma matriz de outra classe, deve haver uma conversão entre duas classes.

No exemplo a seguir, students é um student matriz. Desde que nenhuma conversão existe entre String e student, a última demonstrativo falhar.

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

Consulte também

Tarefas

Como: Converter um objeto para outro tipo no Visual Basic

Referência

Resumo de tipo de dados (Visual Basic)

Funções de conversão de tipo (Visual Basic)

Conceitos

Tipos de dados no Visual Basic

Conversões explícitas e implícitas (Visual Basic)

Alterações de valor durante conversões (Visual Basic)

Conversões entre sequências e outros tipos (Visual Basic)

Programação Sem-Tipos no Visual Basic

Matrizes no Visual Basic

Outros recursos

Conversões de Tipo no Visual Basic