Optional (Visual Basic)
プロシージャが呼び出されるときにプロシージャ引数が省略可能であることを示します。
Remarks
省略可能なパラメーターごとに、そのパラメーターの既定値として定数式を指定する必要があります。 式が Nothing に評価される場合は、値データ型の既定値がパラメーターの既定値として使用されます。
パラメーター リストに省略可能なパラメーターが含まれている場合は、その後に続くすべてのパラメーターも省略可能である必要があります。
Optional
修飾子は、次のコンテキストで使用できます。
注意
省略可能なパラメーターの有無にかかわらず、プロシージャを呼び出すときは、位置または名前によって引数を渡すことができます。 詳細については、「位置と名前による引数渡し」を参照してください。
注意
オーバーロードを使用して省略可能なパラメーターを持つプロシージャを定義することもできます。 省略可能なパラメーターが 1 つあるとすると、パラメーターを受け取る場合と受け取らない場合の、2 つのオーバーロードされたバージョンのプロシージャを定義できます。 詳細については、「 Procedure Overloading」を参照してください。
例 1
次の例では、省略可能なパラメーターがあるプロシージャを定義しています。
Public Function FindMatches(ByRef values As List(Of String),
ByVal searchString As String,
Optional ByVal matchCase As Boolean = False) As List(Of String)
Dim results As IEnumerable(Of String)
If matchCase Then
results = From v In values
Where v.Contains(searchString)
Else
results = From v In values
Where UCase(v).Contains(UCase(searchString))
End If
Return results.ToList()
End Function
例 2
次の例では、位置で渡される引数と名前で渡される引数を使用してプロシージャを呼び出す方法を示します。 このプロシージャには、2 つの省略可能なパラメーターがあります。
Private Sub TestParameters()
' Call the procedure with its arguments passed by position,
studentInfo("Mary", 19, #9/21/1981#)
' Omit one optional argument by holding its place with a comma.
studentInfo("Mary", , #9/21/1981#)
' Call the procedure with its arguments passed by name.
studentInfo(age:=19, birth:=#9/21/1981#, name:="Mary")
' Supply an argument by position and an argument by name.
studentInfo("Mary", birth:=#9/21/1981#)
End Sub
Private Sub studentInfo(ByVal name As String,
Optional ByVal age As Short = 0,
Optional ByVal birth As Date = #1/1/2000#)
Console.WriteLine("name: " & name)
Console.WriteLine("age: " & age)
Console.WriteLine("birth date: " & birth)
Console.WriteLine()
End Sub
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET