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

Traduzione articoli Traduzione articoli
Identificativo articolo: 312389 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato archiviato. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.
Espandi tutto | Chiudi tutto

In questa pagina

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

Proprietà

Identificativo articolo: 312389 - Ultima modifica: lunedì 24 febbraio 2014 - Revisione: 3.3
Le informazioni in questo articolo si applicano a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Chiavi: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB312389 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

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