Поделиться через


Optional (Visual Basic)

Указывает, что аргумент процедуры может быть пропущен при ее вызове.

Заметки

Для каждого необязательного параметра необходимо указать константное выражение в качестве значения по умолчанию.Если выражение Nothing, то используется значение по умолчанию для типа данных значения по умолчанию для параметра.

Если список параметров содержит необязательный параметр, то каждый параметр, который следует за ним также должен быть необязательным.

Модификатор Optional можно использовать в следующих контекстах:

ПримечаниеПримечание

При вызове процедуры с или без дополнительных параметров можно передать аргументы по положению или по имени.Дополнительные сведения см. в разделе Передача аргументов по позиции и по имени (Visual Basic).

ПримечаниеПримечание

Можно также определить процедуру с необязательными параметрами с помощью перегружен.Если имеется один необязательный параметр, то можно определить 2 перегруженные версии процедуры, одна из которых принимает параметр, а другая, не делает.Дополнительные сведения см. в разделе Перегрузка процедур (Visual Basic).

Пример

В следующем примере определяется процедуры с необязательным параметром.

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

См. также

Ссылки

Список параметров (Visual Basic)

Основные понятия

Необязательные параметры (Visual Basic)

Другие ресурсы

Ключевые слова (Visual Basic)