Jak vrátit silnými matice pomocí programu Visual Basic 2005 nebo Visual Basic .NET z metody ToArray(type)

Překlady článku Překlady článku
ID článku: 312389 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje způsob použití Microsoft Visual Basic 2005 nebo Microsoft Visual Basic .NET vrátíte matice silnými z metody ToArray(type). Tento článek platí pro Visual Basic 2005 nebo Visual Basic .NET, pokud nastavíte Direktiva Option Strict On. Pokud nastavíte Možnost Striktního vypnuto jazyka umožňuje implicitní přetypování popsanou v článku.

Metoda ToArray parametr méně třídy ArrayList vrátí pole typu Object. Implementace méně parametr ToArray nelze použít k přetypovat matice objektů na matici do typu. Například pokud přidat počet objektů ZákazníkArrayList podkladové seznamu není provedena matice zákazníka. To způsobí selhání s výjimkou System.InvalidCastException následující příkaz.
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())
				
Vrátíte matice silnými přetížené ToArray metodu, která přijímá typ objektu jako parametr použít. Následující příkaz například úspěšné.
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())
				
Důležité všechny prvky ArrayList musí být stejného typu objektu. Metoda ToArray selže, pokud se pokusíte přetypovat ArrayList heterogenní objekty na určitý typ.

Podrobný příklad

  1. Spusťte nový projekt aplikace konzoly pomocí Visual Basic 2005 nebo Visual Basic .NET. Ve výchozím nastavení je vytvořen soubor s názvem Module1.vb.
  2. Nahradit kód v Module1.vb následující kód.
    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. Stiskněte klávesy CTRL + F5 sestavit a spustit projektu. (CTRL + F5 umožňuje okno Konzola zůstat otevřené).
  4. Výjimka InvalidCastException reprodukovat, postupujte podle dvou commenting pokynů ukázkový kód.

Vlastnosti

ID článku: 312389 - Poslední aktualizace: 28. února 2014 - Revize: 3.3
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB312389 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:312389

Dejte nám zpětnou vazbu

 

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