VB.NET インスタンスの初期値(オブジェクト初期化子)

VB.NETのインスタンス化した際に初期値を設定するサンプルです。
オブジェクト初期化子と呼ばれます。

目次

説明 オブジェクト初期化子
サンプル クラスをインスタンス化する時に初期値も設定する
  クラスを複数のデータとしてリストに入れる

オブジェクト初期化子

Dim 変数 = New クラス With {.プロパティ = "値",.プロパティ = "値"・・・}

クラスをインスタンス化する時に初期値も設定する

 クラスをインスタンス化する時に初期値も設定するサンプルです。

Public Class Syain
    Public Property id As String
    Public Property name As String
    Public Property romaji As String
End Class

Module Module1
    Sub Main()
        Dim test1 = New Syain 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でSyainクラスをインスタンス化し、with以下でプロパティに値を設定しています。
11~13行目はそれぞれ設定した値を表示しています。

クラスを複数のデータとしてリストに入れる

クラスを複数のデータとしてリストに入れるサンプルです。

Public Class Syain
    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 Syain)

        list1.Add(New Syain With {.id = "1", .name = "鈴木", .romaji = "suzuki"})
        list1.Add(New Syain With {.id = "2", .name = "田中", .romaji = "tanaka"})
        list1.Add(New Syain 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 コンストラクタのサンプル

△上に戻る