共用方式為


使用者定義資料型別

更新:2007 年 11 月

保留您定義之格式的資料。Structure 陳述式 (Statement) 會定義格式。

舊版的 Visual Basic 支援使用者定義型別 (UDT)。目前的版本會將 UDT 展開成「結構」。結構是各種資料型別之一個或多個「成員」的串連。Visual Basic 會將結構視為單一單位,但您也能個別存取其成員。

備註

當您需要將各種資料型別結合成單一單位,或是沒有適合所需的基礎資料型別 (Elementary Data Type) 時,請定義和使用結構資料型別。

結構資料型別的預設值,是由其每個成員的預設值組合所組成。

宣告格式

結構宣告是以 Structure 陳述式開始,並以 EndStructure 陳述式結束。Structure 陳述式會提供結構的名稱,這同時也是由結構定義的資料型別識別項。程式碼的其他部分可以使用這個識別項,將變數、參數和函式傳回值宣告為這個結構的資料型別。

Structure 陳述式和 EndStructure 陳述式之間的宣告可定義結構成員。

成員存取層級

您必須使用 Dim 陳述式 (Visual Basic) 或指定存取層級的陳述式 (例如 Public (Visual Basic)Friend (Visual Basic)Private (Visual Basic)) 來宣告每個成員。如果您使用 Dim 陳述式,則存取層級會預設為公用 (Public)。

程式設計提示

  • 記憶體消耗量:和所有複合資料型別一樣,將成員的表面儲存配置加總起來不一定就是結構的總記憶體耗用量。除此之外,您也不能就將記憶體中的儲存順序視為與您宣告的順序相同。如果需要控制結構的儲存體配置,可將 StructLayoutAttribute 屬性 (Attribute) 套用到 Structure 陳述式。

  • Interop 考量::如果您正在使用的元件不是針對 .NET Framework 所撰寫的 (例如 Automation 或 COM 物件),請記住,其他環境中的使用者定義型別會與 Visual Basic 結構型別不相容。

  • 擴展:不會與任何結構資料型別進行自動轉換。您可以使用 Operator 陳述式,在結構上定義轉換運算子,也可以將每一個轉換運算子宣告成 Widening 或 Narrowing。

  • 型別字元。:結構資料型別沒有常值 (Literal) 型別字元或識別項型別字元。

  • 架構型別。:.NET Framework 中沒有對應的型別。所有結構都繼承自 .NET Framework 類別 System.ValueType,但沒有個別結構對應於 System.ValueType

範例

下列的開發架構將顯示結構宣告的大綱。

[Public | Protected | Friend | Protected Friend | Private] Structure structname
    {Dim | Public | Friend | Private} member1 As datatype1
    ' ...
    {Dim | Public | Friend | Private} memberN As datatypeN
End Structure

請參閱

概念

有效率地使用資料型別

參考

資料型別摘要 (Visual Basic)

ValueType

型別轉換函式

轉換摘要

Structure 陳述式

Widening

Narrowing

StructLayoutAttribute

其他資源

結構:您自己的資料型別