複合資料類型 (Visual Basic)
除了 Visual Basic 所提供的基本資料類型之外,您也可以組合不同類型的項目,以建立複合資料類型,例如結構、陣列和類別。 您可以從基本類型和其他複合類型中建置複合資料類型。 例如,您可以定義結構元素的陣列,或具有陣列成員的結構。
資料類型
複合類型與其任何元件的資料類型不同。 例如,Integer
元素的陣列不屬於 Integer
資料類型。
陣列資料類型通常會視需要使用元素類型、括弧和逗號來表示。 例如,String
元素的一維陣列會表示為 String()
,而 Boolean
元素的二維陣列則會表示為 Boolean(,)
。
結構類型
沒有一個單一的資料類型包含所有結構。 相反地,一個結構的每個定義都代表唯一的資料類型,即使兩個結構都以相同的順序定義相同的元素也一樣。 不過,如果您建立具有相同結構的兩個或多個實例,Visual Basic 會將這些實例視為屬於相同的資料類型。
元組
Tuple (元組) 是一個輕量型結構,其中包含了兩個或多個預先定義其類型的欄位。 從 Visual Basic 2017 開始支援 Tuple。 Tuple 最常用來從一個單一方法呼叫中傳回多個值,而不必透過參考來傳遞引數,或將傳回的欄位包裝在較繁重的類別或結構中。 如需 Tuple 的詳細資訊,請參閱 Tuple 主題。
陣列型別
沒有一個單一的資料類型包含所有陣列。 一個特定的陣列實例的資料類型取決於以下各項:
它是一個陣列的事實
陣列的陣序 (維度數目)
陣列的元素類型
特別是,指定維度的長度不是實例資料類型的一部分。 說明如下例。
Dim arrayA( ) As Byte = New Byte(12) {}
Dim arrayB( ) As Byte = New Byte(100) {}
Dim arrayC( ) As Short = New Short(100) {}
Dim arrayD( , ) As Short
Dim arrayE( , ) As Short = New Short(4, 10) {}
在上述範例中,陣列變數 arrayA
和 arrayB
會被視為屬於相同的資料類型 (Byte()
) (即使它們初始化為不同的長度也一樣)。 變數 arrayB
和 arrayC
不是屬於相同的類型,因為它們的元素類型不同。 變數 arrayC
和 arrayD
不是屬於相同的類型,因為它們的陣序不同。 變數 arrayD
和 arrayE
具有相同的類型 (Short(,)
),因為它們的陣序和元素類型相同 (即使 arrayD
尚未初始化也一樣)。
如需陣列的詳細資訊,請參閱陣列。
類別類型
沒有一個單一的資料類型包含所有類別。 雖然一個類別可以繼承自另一個類別,但每一個類別都是個別的資料類型。 相同類別的多個實例屬於相同的資料類型。 如果您將一個類別實例變數指派給另一個,不僅它們具有相同的資料類型,而且它們也指向記憶體中的同一個類別實例。
如需類別的詳細資訊,請參閱物件和類別。