Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Указывает, что аргумент процедуры может быть опущен при вызове процедуры.
Замечания
Для каждого необязательного параметра необходимо указать константное выражение в качестве значения по умолчанию этого параметра. Если выражение вычисляется как "Нет", значение по умолчанию типа данных значения используется в качестве значения по умолчанию параметра.
Если список параметров содержит необязательный параметр, каждый следующий параметр также должен быть необязательным.
Модификатор Optional можно использовать в следующих контекстах:
Замечание
При вызове процедуры с необязательными параметрами можно передавать аргументы по позиции или по имени. Дополнительные сведения см. в разделе "Передача аргументов по позиции и по имени".
Замечание
Можно также определить процедуру с необязательными параметрами с помощью перегрузки. Если у вас есть один необязательный параметр, можно определить две перегруженные версии процедуры, которая принимает параметр и тот, который не поддерживает. Дополнительные сведения см. в разделе "Перегрузка процедур".
Пример 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
В следующем примере показано, как вызвать процедуру с аргументами, передаваемыми по позиции, и с аргументами, переданными по имени. Процедура имеет два необязательных параметра.
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