関数には省略できる引数を設定する事ができます。
Sub Main()
Dim ret As Integer = 0
ret = keisan(100, 10)
Console.WriteLine("計算結果:{0}", ret)
ret = keisan(100, 10, 0)
Console.WriteLine("計算結果:{0}", ret)
ret = keisan(100, 10, 1)
Console.WriteLine("計算結果:{0}", ret)
End Sub
Function keisan(data1 As Integer, data2 As Integer, Optional flg As Integer = 0) As Integer
If flg = 0 Then '0の時は足し算
Return data1 + data2
ElseIf flg = 1 Then '1の時は引き算
Return data1 - data2
Else
Console.WriteLine("エラー")
Return 0
End If
End Function
計算結果:110
計算結果:110
計算結果:90
keisan関数は、第1引数と第2引数の値を使って、
足し算か引き算をして結果を返す関数です。
第3引数に、足し算をするか、引き算をするかを判断するフラグを持ちます。
0の場合は足し算、1の場合は引き算となります。
また、Optionalキーワードが付いているので、省略可能引数と言う意味です。
省略された時の値は = を使って指定します(このプログラム例では0)
第3引数は省略できますが、明示的に指定しても問題はありません。
省略可能引数は、引数の一番最後に指定するようにします。
例えば、以下のような書き方はコンパイルエラーとなってしまいます。
Function keisan(Optional flg As Integer = 0, data1 As Integer, data2 As Integer) As Integer
今度は、省略可能引数を3つ設定し、途中の引数を省略した書き方です。
Sub keisan(d As Integer, Optional flg1 As Integer = 0,
Optional flg2 As Integer = 0, Optional flg3 As Integer = 0)
keisan(data, 0, , 1)
第3引数を省略した書き方ですが、これは正常動作します。