VB.NET コンストラクタのサンプル

VB.NETのコンストラクタのサンプルです。

目次

サンプル コンストラクタ
  コンストラクタのオーバーロード
  別のコンストラクタを指定する(MyClass)
  親クラスのコンストラクタを指定する(MyBase)

コンストラクタ

class クラス名
  Sub New(引数)
    処理
  End Sub
End Class
  • コンストラクタは、new演算子でクラスをインスタンス化する時に呼ばれます。
  • クラスの初期値を設定するときなどに使用されます。
  • 戻り値はないので、戻り値の記述はしません。
  • コンストラクタをオーバーロードすることもできます。

コンストラクタのサンプルです。

Public Class Class1
	Public ReadOnly Property ColorName As String
	Sub New(name As String)
		ColorName = name
	End Sub
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1("赤")
		Console.WriteLine(c1.ColorName) '赤
	End Sub
End Module

3~5行目がコンストラクタです。
10行目のクラスがnew演算子でインスタンス化されると、3行目が呼ばれ、2行目のプロパティに値がセットされます。
11行目は、セットされた値を確認しています。

 

コンストラクタのオーバーロード

コンストラクタのオーバーロードのサンプルです。

Public Class Class1
	Public ReadOnly Property ColorName As String
	Sub New(name As String)
		ColorName = name
	End Sub
	Sub New(num As Integer)
		ColorName = "赤"
	End Sub
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1(1)
		Console.WriteLine(c1.ColorName) '赤
	End Sub
End Module

3,6行目がオーバーロードです。引数が異なるものです。
3行目は、インスタンス化する時にString型の引数が1つのときに実行されます。
6行目は、インスタンス化する時にInteger型の引数が1つのときに実行されます。
13行目は、Integer型の引数が渡されるので6行目が実行されます。

 

別のコンストラクタを指定する(MyClass)

別のコンストラクタを指定するサンプルです。MyClassを使用します。

Public Class Class1
	Public ReadOnly Property ColorName As String
	Sub New(name As String)
		ColorName = name
	End Sub
	Sub New(num As Integer)
		MyClass.New("赤")
	End Sub
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1(1)
		Console.WriteLine(c1.ColorName) '赤
	End Sub
End Module

3,6行目は、オーバーロードです。引数が異なるものです。
7行目は、MyClassがありString型の引数が1つなので3行目のコンストラクタを指します。

 

親クラスのコンストラクタを指定する(MyBase)

親クラスのコンストラクタを指定するサンプルです。MyBaseを使用します。

Public Class Color1
	Public ReadOnly Property ColorName() As String
	Sub New(name As String)
		ColorName = name
	End Sub
End Class

Public Class Color2
	Inherits Color1
	Sub New(name As String)
		MyBase.New(name)
	End Sub
End Class

Module Module1
	Sub Main()
		Dim c2 As New Color2("赤")
		Console.WriteLine(c2.ColorName) '赤
	End Sub
End Module

10行目は、コンストラクタです。
11行目はMyBaseで親クラスのコンストラクタを実行します。

以下は、MicrosoftのMe、My、MyBase、MyClassのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/program-structure/me-my-mybase-and-myclass

関連の記事

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

△上に戻る