Share via


Optional (Visual Basic)

Specifica che è possibile omettere un argomento di routine quando si chiama la routine.

Note

Per ogni parametro facoltativo, è necessario specificare un'espressione costante come valore predefinito del parametro.Se l'espressione restituisce Nothing, il valore predefinito del tipo di dati valore viene utilizzato come valore predefinito del parametro.

Se l'elenco di parametri contiene un parametro facoltativo, ciascun parametro dall'deve essere facoltativo.

Il modificatore Optional può essere utilizzato nei seguenti contesti:

[!NOTA]

Nel chiamare una routine con o senza parametri facoltativi, è possibile passare gli argomenti tramite posizione o per nome.Per ulteriori informazioni, vedere Passaggio di argomenti in base alla posizione e al nome (Visual Basic).

[!NOTA]

È inoltre possibile definire una routine con parametri facoltativi utilizzando l'overload.Se si dispone di un parametro facoltativo, è possibile definire due versioni di overload della routine, di che accetta il parametro e che non fa.Per ulteriori informazioni, vedere Overload della routine (Visual Basic).

Esempio

Nell'esempio seguente viene definita una routine con un parametro facoltativo.

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

Nell'esempio seguente viene illustrato come chiamare una routine con gli argomenti passati dalla posizione e gli argomenti passati per nome.La routine presenta due parametri facoltativi.

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

Vedere anche

Riferimenti

Elenco dei parametri (Visual Basic)

Concetti

Parametri facoltativi (Visual Basic)

Altre risorse

Parole chiave (Visual Basic)