複合資料類型 (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) {}  

在上述範例中,陣列變數 arrayAarrayB 會被視為屬於相同的資料類型 (Byte()) (即使它們初始化為不同的長度也一樣)。 變數 arrayBarrayC 不是屬於相同的類型,因為它們的元素類型不同。 變數 arrayCarrayD 不是屬於相同的類型,因為它們的陣序不同。 變數 arrayDarrayE 具有相同的類型 (Short(,)),因為它們的陣序和元素類型相同 (即使 arrayD 尚未初始化也一樣)。

如需陣列的詳細資訊,請參閱陣列

類別類型

沒有一個單一的資料類型包含所有類別。 雖然一個類別可以繼承自另一個類別,但每一個類別都是個別的資料類型。 相同類別的多個實例屬於相同的資料類型。 如果您將一個類別實例變數指派給另一個,不僅它們具有相同的資料類型,而且它們也指向記憶體中的同一個類別實例。

如需類別的詳細資訊,請參閱物件和類別

另請參閱