Parametry opcjonalne (Visual Basic)
Można określić, że procedury parametr jest opcjonalny i argument nie ma dostarczanych dla niego podczas wywołania procedury.Parametry opcjonalne są wskazywane przez Optional słowa kluczowego w definicji procedury.Stosuje się następujące zasady:
Parametr opcjonalny, co w definicji procedury należy określić wartość domyślną.
Wartość domyślna dla opcjonalnego parametru musi być wyrażenie stałe.
Każdy parametr po opcjonalny parametr w definicji procedury musi być także opcjonalne.
Następująca składnia przedstawia deklaracji procedury z opcjonalnego parametru:
Sub sub name(ByVal parameter 1 As data type 1, Optional ByVal parameter 2 As data type 2 = default value)
Wywoływanie procedur z parametrów opcjonalnych
Wywołuje procedurę z opcjonalnego parametru, można wybrać czy dostaw argument.Jeśli nie, procedura używa domyślnej wartości zadeklarowane dla tego parametru.
Jeżeli pominięto jeden lub więcej argumentów opcjonalnych na liście argumentów służy kolejnych przecinków do oznaczania ich pozycji.Następujące wywołanie przykład dostawy argumenty pierwszym i czwartym, ale nie drugiego i trzeciego:
sub name(argument 1, , , argument 4)
Poniższy przykład powoduje, że kilka wywołań do MsgBox funkcji.MsgBoxjeden wymaga parametru i dwa parametry opcjonalne.
Pierwsze wywołanie MsgBox dostaw wszystkie trzy argumenty w kolejności która MsgBox definiuje je.Drugie wywołanie dostaw wymaga argumentu.Trzeci i czwarty wywołań podać argumenty pierwszy i trzeci.Trzecie zaproszenie wykonuje to stanowisko i czwarty wywołanie robi według nazwy.
MsgBox("Important message", MsgBoxStyle.Critical, "MsgBox Example")
MsgBox("Just display this message.")
MsgBox("Test message", , "Title bar text")
MsgBox(Title:="Title bar text", Prompt:="Test message")
Określenia, czy opcjonalny Argument jest obecny
Procedura nie może wykryć w czasie wykonywania, czy podany argument został pominięty lub kod wywołujący jawnie dostarczył wartość domyślna.Jeśli konieczne jest dokonanie takiego rozróżnienia, mało wartości można ustawić jako domyślny.Poniższa procedura określa opcjonalny parametr officei testy na wartość domyślną, QJZ, aby zobaczyć, jeśli ma zostały pominięte w wywołaniu:
Sub notify(ByVal company As String, Optional ByVal office As String = "QJZ")
If office = "QJZ" Then
Debug.WriteLine("office not supplied -- using Headquarters")
office = "Headquarters"
End If
' Insert code to notify headquarters or specified office.
End Sub
Jeśli parametr opcjonalny jest typem odwołania, takich jak String, można użyć Nothing jako wartość domyślną, pod warunkiem nie jest oczekiwaną wartością argumentu.
Parametry opcjonalne i przeciążeniu
Inny sposób definiowania procedury z opcjonalnych parametrów jest użycie, przeciążenie.Jeśli masz jeden parametr opcjonalny, można zdefiniować dwie wersje przeciążone procedury, jeden parametr akceptuje i jednej bez niego.Podejście to staje się bardziej skomplikowane jako liczba wzrasta parametrów opcjonalnych.Jednak jej zaletą jest to, że użytkownik może być absolutną pewność, czy program wywołujący dostarczane każdego opcjonalny argument.
Zobacz też
Informacje
Koncepcje
Parametry procedury i argumenty (Visual Basic)
Przekazywanie argumentów przez wartość i przez odwołanie (Visual Basic)
Przekazywanie argumentów, położenie i nazwę (Visual Basic)