Optional (Visual Basic)

Spécifie qu’un argument de procédure peut être omis quand la procédure est appelée.

Notes

Pour chaque paramètre facultatif, vous devez spécifier une expression constante comme valeur par défaut de ce paramètre. Si l’expression prend la valeur Nothing, la valeur par défaut du type de données de la valeur est utilisée comme valeur par défaut du paramètre.

Si la liste de paramètres contient un paramètre facultatif, chaque paramètre qui le suit doit également être facultatif.

Le modificateur Optional peut être utilisé dans les contextes suivants :

Notes

Quand vous appelez une procédure avec ou sans paramètres facultatifs, vous pouvez passer des arguments par position ou par nom. Pour plus d’informations, consultez Passage des arguments par position et par nom.

Notes

Vous pouvez également définir une procédure avec des paramètres facultatifs en utilisant la surcharge. Si vous avez un seul paramètre facultatif, vous pouvez définir deux versions surchargées de la procédure, l’une acceptant le paramètre et l’autre ne l’acceptant pas. Pour plus d'informations, consultez Procedure Overloading.

Exemple 1

L’exemple suivant définit une procédure qui a un paramètre facultatif.

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

Exemple 2

L’exemple suivant montre comment appeler une procédure avec des arguments transférés par position et des arguments transférés par nom. La procédure a deux paramètres facultatifs.

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

Voir aussi