Visual Basic で提供される基本データ型に加えて、さまざまな型の項目をアセンブルして、構造体、配列、クラスなどの 複合データ型 を作成することもできます。 基本型と他の複合型から複合データ型を作成できます。 たとえば、構造体要素の配列や、配列メンバーを持つ構造体を定義できます。
データ型
複合型は、そのコンポーネントのデータ型とは異なります。 たとえば、 Integer
要素の配列が Integer
データ型ではありません。
配列データ型は、通常、必要に応じて要素型、かっこ、およびコンマを使用して表されます。 たとえば、 String
要素の 1 次元配列は String()
として表され、 Boolean
要素の 2 次元配列は Boolean(,)
として表されます。
構造体の型
すべての構造体を構成する単一のデータ型はありません。 2 つの構造体が同じ順序で同じ要素を定義している場合でも、構造体の各定義は一意のデータ型を表します。 ただし、同じ構造のインスタンスを 2 つ以上作成した場合、Visual Basic では同じデータ型であると見なされます。
タプル
タプルは、型が定義済みの 2 つ以上のフィールドを含む軽量構造体です。 タプルは、Visual Basic 2017 以降でサポートされています。 タプルは、参照によって引数を渡したり、返されたフィールドをより重いクラスまたは構造体にパッケージ化したりする必要なく、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
がまだ初期化されていない場合でも、arrayD
変数とarrayE
は同じ型 (Short(,)
) を持ちます。これは、ランクと要素の型が同じであるためです。
配列の詳細については、「 配列」を参照してください。
クラス型
すべてのクラスを構成する単一のデータ型はありません。 1 つのクラスは別のクラスから継承できますが、それぞれが個別のデータ型です。 同じクラスの複数のインスタンスが同じデータ型です。 あるクラス インスタンス変数を別のクラス インスタンス変数に割り当てると、同じデータ型を持つだけでなく、メモリ内の同じクラス インスタンスを指します。
クラスの詳細については、「 オブジェクトとクラス」を参照してください。
こちらも参照ください
- データ型
- 基本データ型
- Visual Basic のジェネリック型
- 値型と参照型
- Visual Basic における 型変換
- 構造体
- トラブルシューティング (データ型)
- 方法: 変数に複数の値を保持する
.NET