Share via


Optional (Visual Basic)

Especifique que se puede omitir un argumento de procedimiento cuando se llama al procedimiento.

Comentarios

Para cada parámetro opcional, debe especificar una expresión constante como valor predeterminado de ese parámetro. Si la expresión se evalúa como nada, el valor predeterminado del tipo de datos de valor se utiliza como valor predeterminado.

Si la lista de parámetros contiene un parámetro opcional, cada parámetro que lo sigue también debe ser opcional.

El modificador Optional se puede utilizar en estos contextos:

Nota

Al llamar a un procedimiento con o sin parámetros opcionales, puede pasar argumentos por posición o por nombre.Para obtener más información, vea Pasar argumentos por posición o por nombre (Visual Basic).

Nota

También puede definir un procedimiento con parámetros opcionales mediante la sobrecarga.Si tiene un parámetro opcional, puede definir dos versiones sobrecargadas del procedimiento, el que acepta el parámetro y otro que no lo hace.Para obtener más información, vea Sobrecarga de procedimiento (Visual Basic).

Ejemplo

El ejemplo siguiente se define un procedimiento con un parámetro opcional.

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

El ejemplo siguiente muestra cómo llamar a un procedimiento con los argumentos por posición y con los argumentos por nombre. El procedimiento tiene dos parámetros opcionales.

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

Vea también

Referencia

Lista de parámetros (Visual Basic)

Conceptos

Parámetros opcionales (Visual Basic)

Otros recursos

Palabras clave de Visual Basic