使用者定義資料類型
以您定義的格式保存資料。 Structure
陳述式會定義格式。
先前版本的 Visual Basic 支援使用者定義型別 (UDT)。 目前的版本會將 UDT 展開至結構。 結構是各種資料類型之一或多個成員的串連。 Visual Basic 會將結構視為單一單位,但您也可以個別存取其成員。
備註
當您需要將各種資料類型結合成單一單位時,或當沒有任何基礎資料型別符合您的需求時,請定義和使用結構資料類型。
結構資料類型的預設值是由每個成員的預設值組合所組成。
宣告格式
結構宣告會以 Structure 陳述式開頭,並以 End Structure
陳述式結束。 Structure
陳述式會提供結構的名稱,這也是結構所定義之資料類型的識別碼。 程式碼的其他部分可以使用這個識別碼來宣告變數、參數和函式傳回值,以成為這個結構的資料類型。
Structure
和 End Structure
陳述式之間的宣告會定義結構的成員。
成員存取層級
您必須使用 Dim 陳述式 或指定存取層級的陳述式宣告每個成員,例如 Public、Friend 或 Private。 如果您使用 Dim
陳述式,存取層級預設為公用。
程式設計提示
記憶體使用量。 如同所有複合資料型別,您無法藉由將其成員的具名儲存體配置加在一起,安全地計算結構的總記憶體使用量。 此外,您無法安全地假設記憶體中的儲存體順序與您的宣告順序相同。 如果您需要控制結構的儲存體配置,可以將 StructLayoutAttribute 屬性套用至
Structure
陳述式。Interop 考量。 如果您要使用的元件不是針對 .NET Framework 撰寫的 (例如 Automation 或 COM 物件),請記住,其他環境中的使用者定義類型與 Visual Basic 結構類型並不相容。
擴展。 沒有任何結構資料類型往來的自動轉換。 您可以使用 Operator 陳述式在結構上定義轉換運算子,而且您可以將每個轉換運算子宣告為
Widening
或Narrowing
。類型字元。 結構資料類型沒有常值型別字元或識別項型別字元。
Framework 類型。 .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