VB.NET プロパティ(getter/setter)のサンプル

VB.NETのプロパティ(getterとsetter)のサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

サンプル プロパティ
  VSの機能でプロパティを作成する
  プロパティ(getterとsetter)を作成する
  プロパティ(getterとsetter)を使用する

プロパティ

Public Property 名称 as データ型
Public ReadOnly Property 名称 as データ型
  • Propertyというキーワードがつきます。
  • プロパティとは、仕組みとしてprivateの変数があり、その変数の値を取得するGetメソッドと値を設定するSetメソッドがあります。
  • ReadOnlyがつくと読み取り専用になります。
  • VB2010から自動実装プロパティという機能が実装されました。上記の記述のみでプロパティが実現できます。getterとsetterを記述する必要がなくなりました。
  • 以下は、Microsoftの自動実装プロパティ (Visual Basic)のリンクです。
    https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/language-features/procedures/auto-implemented-properties

プロパティのサンプルです。

Public Class Class1
	Public Property name1 As String
	Public ReadOnly Property name2 As String = "緑"
End Class
Module Module1
	Sub Main()
		Dim c1 As New Class1
		Dim c2 As New Class1
		Dim c3 As New Class1

		c1.name1 = "赤"
		c2.name1 = "青"

		Console.WriteLine(c1.name1) '赤
		Console.WriteLine(c2.name1) '青
		Console.WriteLine(c3.name2) '緑
	End Sub
End Module

2行目は、プロパティです。
3行目は、読み取り専用のプロパティです。
11,12行目は、setterで値をセットしています。
14~16行目は、getterで値を取得し表示しています。

設定と取得ともにプロパティ名を指定しています。
JavaのようにgetXXXやsetXXXというメソッドは使用しません

VSの機能でプロパティを作成する

例として次のクラスにVisual Studioの機能を使用してプロパティ(getterとsetter)を作成します。
※VB2008までは、上記の自動実装プロパティ機能がなくこの書き方でした。

Public Class Class1



End Class

getter(ゲッター)とsetter(セッター)は、クラスのフィールドにアクセスするメソッドです。
これらは「アクセサ」または「アクセサメソッド」とも呼ばれます。

プロパティ(getterとsetter)を作成する

1.ソースコード上で、右クリックして、「スニペット」→「スニペットの挿入」をクリックします。

 

2.Propertyのある行をクリックします。

 

3.同じくプロパティのある行をクリックします。

 

4.「プロパティの定義」をクリックします。

 

5.以下のコードが自動で生成されます。

Public Class Class1

    Private newPropertyValue As String
    Public Property NewProperty() As String
        Get
            Return newPropertyValue
        End Get
        Set(ByVal value As String)
            newPropertyValue = value
        End Set
    End Property

End Class

3行目は、privateの変数です。
4行目は、Propertyです。
5~7行目は、Getがあり、returnで値を返します。
8~10行目は、Setがあり、引数を受けて値をセットします。

 

6.3,6,9行目のnewPropertyValueの名称と4行目のNewPropertyを変更して完了です。

Public Class Class1

    Private name As String
    Public Property nametest() As String
        Get
            Return name
        End Get
        Set(ByVal value As String)
            name = value
        End Set
    End Property

End Class

3行目の変数をnameにしています。
4行目のプロパティ名をnametestにしています。

プロパティ(getterとsetter)を使用する

プロパティ(getterとsetter)を使用するサンプルです。

Public Class Class1

    Private name As String
    Public Property nametest() As String
        Get
            Return name
        End Get
        Set(ByVal value As String)
            name = value
        End Set
    End Property

End Class
Module Module1
    Sub Main()
        Dim c1 As New Class1
        Dim c2 As New Class1
        Dim c3 As New Class1

        c1.nametest = "赤"
        c2.nametest = "黄"
        c3.nametest = "青"

        Console.WriteLine(c1.nametest) '赤
        Console.WriteLine(c2.nametest) '黄
        Console.WriteLine(c3.nametest) '青
    End Sub
End Module

20~22行目は、setterでインスタンスに値をセットしています。
24~26行目は、getterでインスタンスから値を取得し表示しています。

設定と取得ともにプロパティ名を指定しています。
JavaのようにgetXXXやsetXXXというメソッドは使用しません

関連の記事

VB.NET入門 クラスの仕組みとサンプル
VB.NET クラスの継承の仕組みとサンプル
VB.NET メソッドのサンプル(値渡し/参照渡し他)

△上に戻る