Como voltar uma matriz vivamente escreveu do método ToArray(type) utilizando o Visual Basic 2005 ou o Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 312389 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Este artigo descreve como utilizar o Microsoft Visual Basic 2005 ou do Microsoft Visual Basic .NET para devolver uma matriz vivamente escrito do método ToArray(type) . Este artigo é aplicável a 2005 do Visual Basic ou Visual Basic .NET se definiu Option Strict On . Se definiu Option Strict terminar , o Visual Basic permite a conversão de implícito é descrito no artigo.

O método de ToArray parâmetro menor da classe ArrayList devolve uma matriz do tipo Object . Pode utilizar a implementação de menos de parâmetro de ToArray para converter a matriz de objectos a uma matriz do tipo. Por exemplo, se adicionar um número de objectos de cliente para um ArrayList , a lista subjacente não é efectuada uma matriz de cliente . Isto faz com que a seguinte instrução de falhar com a excepção System.InvalidCastException.
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())
				
para devolver uma matriz vivamente escrito, utilize o método ToArray sobrecarregado que aceita um tipo de objecto como um parâmetro. Por exemplo, a seguinte instrução terá êxito.
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())
				
importante todos os elementos de ArrayList têm de estar do mesmo tipo de objecto. O método ToArray falha se tentar converter uma ArrayList de heterogéneos objectos a um tipo específico.

Exemplo passo a passo

  1. Inicie um novo projecto de aplicação de consola utilizando o Visual Basic 2005 ou do Visual Basic. NET. Por predefinição, é criado um ficheiro denominado Module1.vb.
  2. Substituir o código Module1.vb 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. Prima CTRL + F5 para compilar e executar o projecto. (CTRL + F5 permite a janela de consola para permanecem abertos.)
  4. Para reproduzir a excepção InvalidCastException, siga as instruções commenting dois no código de exemplo.

Propriedades

Artigo: 312389 - Última revisão: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 312389

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