如何使用 Visual Basic 2005 或 Visual Basic.NET,從 ToArray(type) 方法傳回強型別陣列

文章翻譯 文章翻譯
文章編號: 312389 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您,如何使用 Microsoft Visual Basic 2005 或 Microsoft Visual Basic.NET 從 ToArray(type) 方法傳回強型別陣列。如果您設定 選項 Strict On,本文會套用到 Visual Basic 2005 或 Visual Basic.NET。如果您將設定 選項 Strict Off Visual Basic 會允許隱含在本文所述的轉型。

陣列清單 類別的無參數 ToArray 方法傳回的型別 Object 陣列。您不能使用 ToArray 的無參數實作轉換到您的型別陣列的 物件 陣列。比方說如果 客戶 物件數目加入 陣列清單 基礎清單不會進行 客戶 陣列。這會導致下列的陳述式失敗 System.InvalidCastException 例外狀況。
Dim custArray() As customer = CType(myArrayList.ToArray(), customer())
				
要傳回強型別陣列,使用多載的 ToArray 方法接受 (Accept) 做為參數的物件型別。比方說下列陳述式會成功。
Dim custArray() As customer = CType(al.ToArray(GetType(customer)), customer())
				
重要陣列清單 的所有項目必須是相同的物件型別。如果您嘗試轉換成特定類型的異質性物件的 陣列清單ToArray 方法將會失敗。

逐步範例

  1. 新的主控台應用程式專案請先使用 Visual Basic 2005 或 Visual Basic.NET。預設情況下,會建立名為 Module1.vb 的檔案。
  2. 在 [Module1.vb 程式碼取代下列程式碼
    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. 按下 CTRL + F5 以建置並執行專案。(CTRL + F5 可以讓 [主控台] 視窗保持開啟)。
  4. 如果要重現 InvalidCastException 例外狀況,遵循範例程式碼兩個的註解指示進行。

屬性

文章編號: 312389 - 上次校閱: 2014年2月24日 - 版次: 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 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:312389
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

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