VB.NETのインスタンス化した際に初期値を設定するサンプルです。
オブジェクト初期化子と呼ばれます。
目次
説明 | オブジェクト初期化子 |
サンプル | クラスをインスタンス化する時に初期値も設定する |
クラスを複数のデータとしてリストに入れる |
オブジェクト初期化子
Dim 変数 = New クラス With {.プロパティ = "値",.プロパティ = "値"・・・} |
- クラスをインスタンス化する時に、初期値も設定できます。
- クラスの後に()をつけても同じ動きをします。
- 以下は、Microsoftのオブジェクト初期化子のリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/objects-and-classes/object-initializers-named-and-anonymous-types
クラスをインスタンス化する時に初期値も設定する
クラスをインスタンス化する時に初期値も設定するサンプルです。
Public Class Employee
Public Property id As String
Public Property name As String
Public Property romaji As String
End Class
Module Module1
Sub Main()
Dim test1 = New Employee With {.id = "1", .name = "鈴木", .romaji = "suzuki"}
Console.WriteLine(test1.id) '1
Console.WriteLine(test1.name) '鈴木
Console.WriteLine(test1.romaji) 'suzuki
End Sub
End Module
1~5行目はクラスです。
2~4行目はプロパティです。
9行目は、オブジェクト初期化子です。NewでEmployeeクラスをインスタンス化し、with以下でプロパティに値を設定しています。
11~13行目はそれぞれ設定した値を表示しています。
クラスを複数のデータとしてリストに入れる
クラスを複数のデータとしてリストに入れるサンプルです。
Public Class Employee
Public Property id As String
Public Property name As String
Public Property romaji As String
End Class
Module Module1
Sub Main()
Dim list1 As New List(Of Employee)
list1.Add(New Employee With {.id = "1", .name = "鈴木", .romaji = "suzuki"})
list1.Add(New Employee With {.id = "2", .name = "田中", .romaji = "tanaka"})
list1.Add(New Employee With {.id = "3", .name = "佐藤", .romaji = "sato"})
Console.WriteLine(list1(0).name) '鈴木
Console.WriteLine(list1(1).name) '田中
Console.WriteLine(list1(2).name) '佐藤
End Sub
End Module
9行目は、リストのインスタンスを生成しています。
11~13行目は、オブジェクト初期化子を使用してクラスのインスタンスを生成してプロパティに値をセットして、インスタンスをリストにセットしています。
15~17行目は、リストにセットしたnameの値を表示しています。
関連の記事
VB.NET入門 クラスの仕組みとサンプル
VB.NET クラスの継承の仕組みとサンプル
VB.NET コンストラクタのサンプル