Wie ein stark typisiertes Array aus der ToArray(type)-Methode zurückgegeben wird, mithilfe von Visual Basic 2005 oder Visual Basic .NET

Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.

312389
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Zusammenfassung
Dieser Artikel beschreibt Microsoft Visual Basic 2005 oder Microsoft Visual Basic .NET verwenden, um ein stark typisiertes Array aus ToArray(type) -Methode zurückzugeben. Dieser Artikel gilt für Visual Basic 2005 oder Visual Basic, wenn Sie Option Strict On festlegen. Wenn Sie Option Strict auf OFF festgelegt, ermöglicht Visual Basic die implizite Typumwandlung, die im Artikel beschrieben wird.

Die Parameter weniger ToArray -Methode der ArrayList -Klasse gibt ein Array vom Typ Object zurück. Die parameterlose Implementierung von ToArray können Sie das Object -Array ein Array von Ihrem Typ umgewandelt. Beispielsweise, wenn Sie eine Anzahl von Customer -Objekten zu einer ArrayList hinzufügen, wird die zugrunde liegenden Liste kein Kunden -Array vorgenommen. Die folgende Anweisung scheitert dann mit der Ausnahme "System.InvalidCastException".
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())				
um ein stark typisiertes Array zurückzugeben, verwenden Sie die überladene ToArray -Methode, die einen Objekttyp als Parameter akzeptiert. Folgende Anweisung funktioniert z.B.
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())				
wichtig , die alle Elemente der ArrayList gleichen Objekttyp aufweisen müssen. Die Methode ToArray schlägt fehl, wenn Sie versuchen, eine ArrayList mit heterogenen Objekten auf einen bestimmten Typ umzuwandeln.

Vorgehensweise: Beispiel

  1. Starten Sie ein neues Konsolenanwendungsprojekt mithilfe von Visual Basic 2005 oder Visual Basic .NET. Eine Datei mit dem Namen Module1.vb wird standardmäßig erstellt.
  2. Ersetzen Sie den Code in Module1.vb durch folgenden Code.
    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. Drücken Sie STRG + F5, um erstellen und dann das Projekt ausführen. (Durch [Strg]+[F5] bleibt das Konsolenfenster geöffnet)
  4. Folgen Sie den zwei Kommentaranweisungen im Beispielcode, um die Ausnahme "InvalidCastException" zu reproduzieren.

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 312389 – Letzte Überarbeitung: 02/24/2014 06:08:55 – Revision: 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 KbMtde
Feedback