Como retornar uma matriz com rigidez de tipos do método ToArray usando translation from VPE for Csharp Visual

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: 312390
Para uma versão deste artigo do Microsoft Visual Basic. NET, consulte 312389.

NESTA TAREFA

Sumário
Este artigo passo a passo mostra como usar translation from VPE for Csharp Visual para retornar uma matriz com rigidez de tipos do método ToArray(type) .

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:
Customer [] customer = (Customer[])myArrayList.ToArray();				
para retornar uma matriz com rigidez de tipos, use o método ToArray sobrecarregado que aceita um tipo de objeto como um parâmetro. Por exemplo, a instrução a seguir for bem sucedida:
Customer [] customer = (Customer[])myArrayList.ToArray(typeof(Customer));				
Observação : translation from VPE for Csharp não permite uma conversão implícita, portanto, você deve converter explicitamente o resultado do método ToArray .

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.

back to the top

Exemplo passo a passo


  1. Inicie um novo projeto Console Application no translation from VPE for Csharp Visual .NET ou no Microsoft Visual translation from VPE for Csharp 2005.
  2. Substitua o código de Class1.cs com o código a seguir.

    Observação No Visual Studio 2005, o arquivo padrão é Program.cs.
    using System;using System.Collections;   class Class1  {        [STAThread]    static void Main(string[] args)    {              customer c = new customer();        c.cname = "anonymous";                ArrayList al=new ArrayList();        al.Add(c);        object[] cArray = al.ToArray();        //Display the type of the ArrayList.        Console.WriteLine(cArray.GetType());                //Uncomment the next line to reproduce the InvalidCastException.        //customer[] custArray = (customer[])(al.ToArray());                //Comment the next line to reproduce the InvalidCastException.          customer[] custArray = (customer[])al.ToArray(typeof(customer));        Console.WriteLine(custArray.GetType());           }  }  class customer  {    public string cname;  }					
  3. Pressione a combinação de teclas 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.back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 312390 - Última Revisão: 12/11/2006 21:04:10 - Revisão: 2.3

Microsoft Visual C# 2005 Express Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbhowtomaster kbsample KB312390 KbMtpt
Comentários