複合データ型 (Visual Basic)
Visual Basic に用意されている基本データ型以外にも、異なる型のアイテムを組み合わせて、構造体、配列、クラスなどの複合データ型を作成できます。基本型および他の複合型から複合データ型を作成できます。たとえば、構造体要素の配列や配列メンバーを持つ構造体を定義できます。
データ型
複合型は、その構成要素のデータ型とは異なります。たとえば、整数型 (Integer) の要素の配列は整数型 (Integer) ではありません。
配列データ型は通常、要素の型、かっこ、および必要に応じてコンマを使用して表されます。たとえば、String 型の要素を持つ 1 次元配列は、String() として表され、Boolean 型の要素を持つ 2 次元配列は、Boolean(,) として表されます。
構造体型
すべての構造体を包括する 1 つのデータ型はありません。逆に、すべての構造体定義はそれぞれ異なるデータ型を表します。たとえば、まったく同じ要素が同じ順番で定義されている 2 つの構造体があっても、それらは同じデータ型と見なされません。ただし、同じ構造体の複数のインスタンスを作成した場合、Visual Basic はそれらを同じデータ型と見なします。
配列型
すべての配列を包括する 1 つのデータ型はありません。配列の特定のインスタンスのデータ型は、次の事項によって決まります。
配列であること。
配列のランク (次元数)。
配列の要素型。
特に、次元の長さはインスタンスのデータ型に含まれません。次に例を示します。
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 は、arrayD がまだ初期化されていませんが、ランクも要素型も同じなので、同じ Short(,) 型です。
配列の詳細については、「Visual Basic における配列」を参照してください。
クラス型
すべてのクラスを包括する 1 つのデータ型はありません。あるクラスが別のクラスを継承することはできますが、それらは別のデータ型です。同じクラスの複数のインスタンスは、同じデータ型です。あるクラス インスタンス変数を別のクラス インスタンス変数に代入すると、それらの変数はデータ型が同じであるだけでなく、メモリ内の同じクラス インスタンスを指すことになります。
クラスの詳細については、「Visual Basic のオブジェクトとクラス」を参照してください。
参照
処理手順
データ型のトラブルシューティング (Visual Basic)
方法: 変数内で複数の値を保持する (Visual Basic)
概念
Visual Basic におけるジェネリック型 (Visual Basic)