Al momento sei offline in attesa che la connessione Internet venga ristabilita

Come ottenere una matrice tipizzata in modo sicuro dal metodo ToArray(type) utilizzando Visual Basic 2005 o Visual Basic .NET

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 312389
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
In questo articolo viene descritto come utilizzare Microsoft Visual Basic 2005 o Microsoft Visual Basic .NET per restituire una matrice tipizzata in modo sicuro dal metodo ToArray(type) . In questo articolo si applica a Visual Basic 2005 o Visual Basic .NET se si imposta Option Strict On . Se si imposta Option Strict Off , Visual Basic consente il cast implicito descritto nell'articolo.

Il metodo ToArray della classe ArrayList minore del parametro restituisce una matrice di tipo Object . Non è possibile utilizzare l'implementazione di parametri di ToArray per eseguire il cast la matrice di oggetti a una matrice del tipo. Ad esempio, se si aggiunge un numero di oggetti Customer a un ArrayList , l'elenco sottostante non è eseguita una matrice di Customer . In questo modo l'istruzione seguente con l'eccezione System.InvalidCastException.
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())				
per restituire una matrice fortemente tipizzati, utilizzare il metodo ToArray overload accetta un tipo di oggetto come parametro. Ad esempio la seguente istruzione viene completata.
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())				
importante tutti gli elementi di ArrayList devono essere di tipo oggetto stesso. Il metodo di ToArray non riesce se si tenta di eseguire il cast un ArrayList di oggetti eterogenei su un tipo specifico.

Procedura di esempio

  1. Avviare un nuovo progetto applicazione console utilizzando Visual Basic 2005 o Visual Basic. NET. Per impostazione predefinita, viene creato un file denominato Module1.vb.
  2. Sostituire il codice in Module1.vb con il codice riportato di seguito.
    Option Strict OnModule 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 ClassEnd Module					
  3. Premere CTRL+F5 per generare ed eseguire il progetto. (CTRL+F5 consente di mantenere aperta di finestra di console)
  4. Per riprodurre l'eccezione InvalidCastException, seguire le istruzioni di commento due nel codice di esempio.

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 312389 - Ultima revisione: 02/24/2014 12:54:11 - Revisione: 3.3

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB312389 KbMtit
Feedback