Como retornar uma matriz fortemente tipados do método ToArray(type) utilizando o Visual Basic 2005 ou Visual Basic .NET

Traduções deste artigo Traduções deste artigo
ID do artigo: 312389 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Este artigo descreve como usar o Microsoft Visual Basic 2005 ou Microsoft Visual Basic .NET para retornar uma matriz fortemente tipados do método ToArray(type) . Este artigo se aplica ao Visual Basic 2005 ou Visual Basic .NET se você definir Option Strict On . Se você definir Option Strict Off , o Visual Basic permite a conversão implícita é descrita no artigo.

Método de classe ArrayList ToArray menos parâmetro retorna uma matriz do tipo Object . Você não pode usar a implementação de menos de parâmetro de ToArray para converter a matriz de objeto a uma matriz de seu tipo. Por exemplo, se você adicionar um número de objetos Customer para um ArrayList , a lista subjacente não será feita uma matriz de cliente . Isso faz com que a instrução a seguir falhar com a exceção System.InvalidCastException.
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())
				
para retornar uma matriz fortemente tipados, use o método ToArray sobrecarregado que aceita um tipo de objeto como um parâmetro. Por exemplo, a instrução a seguir terá êxito.
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())
				
importante todos os elementos de ArrayList devem ser do mesmo tipo objeto. O método ToArray falhará se você tentar converter uma ArrayList de objetos heterogêneos para um tipo específico.

Exemplo passo a passo

  1. Inicie um novo projeto Console Application usando Visual Basic 2005 ou Visual Basic. NET. Por padrão, um arquivo chamado Module1.vb é criado.
  2. Substitua o código no Module1.vb com o seguinte código.
    Option Strict On
    
    Module Module1
    
    
        Sub Main()
            Dim tempCust As customer
            Dim c As New customer()
            c.cname = "anonymous"
    
            Dim al As New ArrayList()
            al.Add(c)
            Dim cArray As Object() = al.ToArray()
            'Display the type of the ArrayList.
            Console.WriteLine(cArray.GetType)
    
            'Uncomment the next line to reproduce the InvalidCastException.
            'Dim custArray() As customer = CType(al.ToArray(), customer())
    
            'Comment the next line to reproduce the InvalidCastException.
            Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())
    
            Console.WriteLine(custArray.GetType)
    
        End Sub
    
        Public Class customer
            Public cname As String
        End Class
    
    End Module
    					
  3. Pressione CTRL + F5 para criar e executar o projeto. (CTRL + F5 permite a janela de console para permanecer aberta).
  4. Para reproduzir a exceção InvalidCastException, siga as dois instruções comentários no código de exemplo.

Propriedades

ID do artigo: 312389 - Última revisão: segunda-feira, 24 de fevereiro de 2014 - Revisão: 3.3
A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB312389 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 312389

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com