HOW TO:宣告匿名型別的執行個體 (Visual Basic)

使用匿名型別建立物件時,您不需要撰寫資料型別的類別定義, 編譯器 (Compiler) 會替您建立類別。 因為未指定資料型別的名稱,所以此型別稱為「匿名型別」(Anonymous Type)。

您會使用初始設定式清單來指定匿名型別的屬性,藉以宣告匿名型別的執行個體 (Instance)。 您需提供執行個體的名稱、每個屬性的名稱和每個屬性的初始值,並指出每個屬性是否為索引鍵屬性。

宣告

若要宣告匿名型別的執行個體

  1. 起始 Dim 陳述式 (Statement),不需使用 As 子句。

    Dim instanceName

  2. 在同一個陳述式中,將型別的屬性清單指派至 instanceName,此清單包含在大括弧中並且以關鍵字 New With 做為開頭。

    Dim instanceName = New With {<property names and initial values>}

    以句號做為每個新屬性名稱的開頭,並指派其初始值。 如果您希望此屬性成為索引鍵屬性,則以關鍵字 Key 做為屬性名稱的開頭。 (如需詳細資訊,請參閱 Key (Visual Basic))。使用逗號分隔屬性。 請注意,您不能直接指定屬性的資料型別。 此型別是從初始值推論而來。

    Dim instanceName = New With {Key .Rank = 8,
                                 Key .Title = "Comptroller",
                                 .Location = "headquarters"}
    
  3. 已完成宣告。 除了不能變更索引鍵屬性的值以外,您可以針對任何物件存取 instanceName 的屬性。

    instanceName.Location = "conference"
    Console.WriteLine(instanceName.Title)
    ' The following statement does not compile, because Rank is
    ' a key property and cannot be changed.
    ' instanceName.Rank = 9
    
  4. 如需其他用以宣告匿名型別屬性之方式的詳細資訊,請參閱 HOW TO:在匿名型別宣告中推斷屬性名稱和型別 (Visual Basic)

穩固程式設計

如果您想建立一個暫存物件以包含相關資料,或者希望每個宣告可有不同的屬性選項,匿名型別會是個好選擇。

匿名型別的使用方式有所限制。 最重要的是,匿名型別的名稱無法使用,也不能出現在程式碼中需有型別名稱的地方。 如需如何使用匿名型別設計程式的詳細資訊,請參閱匿名型別 (Visual Basic)

請參閱

工作

HOW TO:在匿名型別宣告中推斷屬性名稱和型別 (Visual Basic)

參考

Key (Visual Basic)

概念

區域型別推斷 (Visual Basic)

匿名型別 (Visual Basic)