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
関連の記事