構造体の初期化について説明します。
Dimを使う方法
Structure hito
Dim age As Integer '年齢
Dim blood As String '血液型
End Structure
Module Module1
Sub Main()
Dim suzuki As hito
Console.WriteLine("suzuki.age={0} suzuki.blood={1}",
suzuki.age, suzuki.blood)
End Sub
End Module
suzuki.age=0 suzuki.blood=
Dimを使って構造体の宣言をすると、構造体のフィールドは0で初期化されます。
参照型であるString型はNothingで初期化されます。
Newを使う方法
Structure hito
Dim age As Integer '年齢
Dim blood As String '血液型
End Structure
Module Module1
Sub Main()
Dim suzuki As New hito
Console.WriteLine("suzuki.age={0} suzuki.blood={1}",
suzuki.age, suzuki.blood)
End Sub
End Module
suzuki.age=0 suzuki.blood=
Newを使って構造体を初期化しても、Dimを使った時と同じです。
スポンサーリンク
コンストラクタを使う方法
Structure hito
Dim age As Integer '年齢
Dim blood As String '血液型
Sub New(ByVal a As Integer, ByVal b As String)
Me.age = a
Me.blood = b
End Sub
End Structure
Module Module1
Sub Main()
Dim suzuki As New hito(30, "A")
Console.WriteLine("suzuki.age={0} suzuki.blood={1}",
suzuki.age, suzuki.blood)
End Sub
End Module
suzuki.age=30 suzuki.blood=A
構造体にコンストラクタを自前で用意し、初期化する例です。
構造体の宣言と同時にフィールドの値を設定できます。
オブジェクト初期化子を使う方法
Structure hito
Dim age As Integer
Dim blood As String
End Structure
Module Module1
Sub Main()
Dim suzuki As New hito With {.age = 40, .blood = "B"}
Console.WriteLine("suzuki.age={0} suzuki.blood={1}",
suzuki.age, suzuki.blood)
End Sub
End Module
suzuki.age=40 suzuki.blood=B
オブジェクト初期化子{}を使う事で、
コンストラクタを用意せずとも、簡易に記述する事ができます。
これで構造体の初期化ができるようになりました。