Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Especifica que se puede omitir un argumento de procedimiento cuando se llama al procedimiento.
Observaciones
Para cada parámetro opcional, debe especificar una expresión constante como el valor predeterminado de ese parámetro. Si la expresión se evalúa como Nothing, el valor predeterminado del tipo de datos value se usa como valor predeterminado del parámetro .
Si la lista de parámetros contiene un parámetro opcional, todos los parámetros siguientes también deben ser opcionales.
El Optional modificador se puede usar 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 y por nombre.
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, una que acepte el parámetro y otra que no lo haga. Para obtener más información, vea Sobrecarga de procedimientos.
Ejemplo 1
En el ejemplo siguiente se define un procedimiento que tiene 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
Ejemplo 2
En el ejemplo siguiente se muestra cómo llamar a un procedimiento con argumentos pasados por posición y con argumentos pasados 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