Share via


Conversões de array

Você pode converter um tipo de matriz para um tipo de matriz diferentes, desde que atendam às condições a seguir:

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

  • Tipo de dados do elemento. Os tipos de dados dos elementos de ambos os arrays devem ser tipos de referência.Não é possível converter um Integer matriz para um Long Array ou até mesmo para um Object matriz porque pelo menos um valor de tipo é envolvido. Para obter mais informações, consulte Tipos de valores e tipos de referências.

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

Uma conversão de tipo de um array para outro é ampliando ou estreitando dependendo da conversão dos respectivos elementos ampliando ou estreitando.Para obter mais informações, consulte Conversões Ampliadoras e Redutoras.

Conversão em uma matriz de objeto

Quando você declara um Object matriz sem inicializá-la, seu tipo de elemento é Object sistema autônomo longo sistema autônomo permanece não inicializado. Quando você conjunto a uma matriz de uma classe específica, ele leva o tipo de classe.No entanto, seu tipo subjacente ainda é Object, e você pode, em seguida, conjunto-lo para outro conjunto de uma classe não relacionado. Já que todas as classes de derivar Object, você pode alterar o tipo de elemento da matriz de qualquer classe para qualquer Outros classe.

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

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

Tipo subjacente de um array

Se originalmente você declarar uma matriz com uma classe específica, seu tipo de elemento subjacente é aquela classe.Se você, em seguida, defini-la como uma matriz de outra classe, deve haver uma conversão entre duas classes.

No exemplo a seguir, students é um student matriz. Como não existe nenhuma conversão entre String e student, a última demonstrativo falha.

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 em outro tipo no Visual Basic

Conceitos

Tipos de dados no Visual Basic

Conversões explícita e implícita 

Alterações de Valor Durante Conversões

Conversões entre sequências e outros tipos

Programação Sem-Tipos no Visual Basic

Referência

Resumo de tipo de dados (Visual Basic)

Funções de conversão de tipo 

Outros recursos

Conversões de Tipo no Visual Basic

Matrizes no Visual Basic