Как добавить необязательные параметры/параметры значений по умолчанию в функцию VB?

Как я могу создать метод с необязательными параметрами в Visual Basic?


person Steve Duitsman    schedule 19.11.2008    source источник


Ответы (2)


Используйте ключевое слово Optional и укажите значение по умолчанию. Необязательные параметры должны быть определены последними, чтобы избежать создания неоднозначных функций.

Sub MyMethod(ByVal Param1 As String, Optional ByVal FlagArgument As Boolean = True)
    If FlagArgument Then
        'Do something special
        Console.WriteLine(Param1)
    End If

End Sub

Назовите это так:

MyMethod("test1")

Или вот так:

MyMethod("test2", False)
person Joel Coehoorn    schedule 19.11.2008
comment
Не знал, что это будет "заготовленный" вопрос. Ну что ж. - person Joel Coehoorn; 19.11.2008
comment
Здесь этого не было, поэтому я решил добавить то, что нашел из результатов Google. - person Steve Duitsman; 19.11.2008

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

Этот код покажет ошибку:

Sub ErrMethod(Optional ByVal FlagArgument As Boolean = True, ByVal Param1 As String)
    If FlagArgument Then
        'Do something special
        Console.WriteLine(Param1)
    End If
End Sub

Это обычная ошибка, отладчик толком не объясняет... В этом есть смысл, представьте вызов...

ErrMethod(???, Param1)
person Marcelo Nuñez    schedule 12.10.2018