VB.NET 構造体のサンプル(Structure)

VB.NETの構造体のサンプルです。

目次

説明 構造体
サンプル 構造体を配列にセットする
  構造体でコンストラクタを使用する
  構造体でメソッドを使用する

構造体

Structure 名称
 値や処理等
End Structure
  • データをまとめることができます。
  • コンストラクタやメソッドも使用できます。
  • クラスと違い継承できません。
  • 構造体は new 演算子を使用せずにインスタンス化できます。
  • newすることも可能です。その場合コンストラクタを使用できます。
  • 構造体は値型で、クラスは参照型です。

構造体のサンプルです。

Structure test1
    Public id As Integer
    Public name As String
    Public sikaku() As String
End Structure

Module Module1
    Sub Main()
        Dim t1 As test1
        t1.id = 1
        t1.name = "suzuki"
        t1.sikaku = {"基本", "応用"}
        Console.WriteLine(t1.id)    ' 1
        Console.WriteLine(t1.name)  ' suzuki
        Console.WriteLine(t1.sikaku(0))  ' 基本
        Console.WriteLine(t1.sikaku(1))  ' 応用
    End Sub
End Module

1~5行目は、構造体です。1行目にStructureがあります。
2~4行目は、変数です。4行目は配列です。
8行目は、構造体の変数です。
10~12行目は、構造体の変数に値をセットしています。12行目は配列に値をセットしています。
13~16行目は、構造体の値を表示しています。

 

構造体を配列にセットする

構造体を配列にセットするサンプルです。

Structure test1
	Public id As Integer
	Public name As String
End Structure

Module Module1
	Sub Main()
		Dim arr(1) As test1

		arr(0).id = 1
		arr(0).name = "鈴木"
		arr(1).id = 2
		arr(1).name = "田中"

		Console.WriteLine(arr(0).id)    ' 1
		Console.WriteLine(arr(0).name)  ' 鈴木
		Console.WriteLine(arr(1).id)    ' 2
		Console.WriteLine(arr(1).name)  ' 田中
	End Sub
End Module

1行目は、構造体です。
8行目は、構造体の配列です。(1)は、添字の0と1をセットできます。
10行目からは構造体の配列に値をセットしています。

 

構造体でコンストラクタを使用する

構造体でコンストラクタを使用するサンプルです。

Structure test1
    Public id As Integer
    Public name As String

    Sub New(num As Integer)
        id = num
    End Sub
End Structure

Module Module1
    Sub Main()
        Dim t1 As New test1(100)
        t1.name = "tanaka"
        Console.WriteLine(t1.id)  ' 100
        Console.WriteLine(t1.name)  ' tanaka
    End Sub
End Module

5行目は、構造体のコンストラクタです。引数を取得して変数に値をセットします。
12行目は、コンストラクタの引数に数値を設定しています。
14行目は、コンストラクタで設定した値を表示しています。

 

構造体でメソッドを使用する

構造体でメソッドを使用するサンプルです。

Structure test1
    Public id As Integer
    Public name As String
    Function GetName()
        Return "こんにちは"
    End Function
End Structure

Module Module1
    Sub Main()
        Dim t1 As New test1
        Console.WriteLine(t1.GetName)  ' こんにちは
    End Sub
End Module

4行目は、メソッドです。Functionで値を返します。
12行目は、構造体のメソッドを実行して値を表示します。

以下は、Microsoftの構造体とクラスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/data-types/structures-and-classes

関連の記事

VB.NET入門 クラスの仕組みとサンプル
VB.NET クラスの継承の仕組みとサンプル
VB.NET コンストラクタのサンプル

△上に戻る