VB.NET オーバーロードのサンプル

VB.NETのオーバーロードのサンプルです。

目次

説明 オーバーロードとは
サンプル メソッドのオーバーロード
  コンストラクタのオーバーロード

オーバーロードとは

  • 1つのクラスの中で、メソッド名またはコンストラクタ名が同じで引数の型や数が異なるものです。
  • 渡す引数によって自動的に引数にあったメソッドまたはコンストラクタが実行されます。
  • メソッド名、引数の型、引数の数の組み合わせをシグネチャ(signature)と呼びます。
    →メソッド名ではなくシグネチャで判別されます。
  • 継承の機能で似た名前のオーバーライドがありますがそれとは別です。オーバーロードと継承は関係ありません。
    VB.NET オーバーライドのサンプル

メソッドのオーバーロード

メソッドのオーバーロードのサンプルです。

Public Class Class1

	Public Function getCount1(a As Integer)
		Return CStr(a) + "回目"
	End Function

	Public Function getCount1(a As Integer, b As String)
		Return CStr(a) + "回目" + b
	End Function
End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1
		Console.WriteLine(c1.getCount1(2)) '2回目と出力される
		Console.WriteLine(c1.getCount1(2, "です")) '2回目ですと出力される
	End Sub
End Module

3,7行目は同じメソッド名です。
3行目の引数はIntegerで、7行目の引数は、IntegerとStringです。
15行目の引数は数値1つです。3行目のメソッドが実行されます。
16行目の引数は数値と文字列の2つです。7行目のメソッドが実行されます。

渡す引数によって自動的に引数にあったメソッドが実行されます。

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

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

Public Class Class1
	Dim name1 As String
	Sub New()
		name1 = "白"
	End Sub
	Sub New(a As String)
		name1 = a
	End Sub

	Public Function getColor()
		Return name1
	End Function

End Class

Module Module1
	Sub Main()
		Dim c1 As New Class1()
		Console.WriteLine(c1.getColor()) '白と出力される

		Dim c2 As New Class1("赤")
		Console.WriteLine(c2.getColor()) '赤と出力される
	End Sub
End Module

3,6行目はコンストラクタです。
3行目の引数はなしで、6行目の引数はStringです。
18行目の引数はありません。3行目のコンストラクタが実行されます。
21行目の引数は文字列1つです。6行目のコンストラクタが実行されます。

渡す引数によって自動的に引数にあったコンストラクタが実行されます。

関連の記事

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

△上に戻る