Porady: przeciążanie procedury wykorzystującej parametry opcjonalne (Visual Basic)
Jeśli procedura ma jeden lub kilka Optional (Visual Basic) parametry, nie można definiować wersję przeciążony pasującymi do dowolnej jego domniemanej overloads.Aby uzyskać więcej informacji, zobacz "Niejawne Overloads dla opcjonalnych parametrów" w Zagadnienia dotyczące przeciążania procedur (Visual Basic).
Jeden parametr opcjonalny
Na przeciążenie procedurę, która przyjmuje jeden parametr opcjonalny
Zapis Sub lub Function instrukcji deklaracji, która zawiera parametr opcjonalny parametr na liście.Nie należy używać Optional słowa kluczowego w tej wersji przeciążone.
Należy poprzedzić Sub lub Function słowa kluczowego z Overloads (Visual Basic) słowa kluczowego.
Napisanie kodu procedury, który powinien wykonać, gdy kod wywołujący dostaw opcjonalny argument.
Zakończenie procedury z End Sub lub End Function instrukcji, jak właściwe.
Napisz druga instrukcja deklaracji, który jest identyczny do pierwszego zgłoszenia, z wyjątkiem, że nie obejmuje opcjonalnego parametru na liście parametrów.
Napisanie kodu procedury, który powinien wykonać, gdy kod wywołujący nie dostarcza opcjonalny argument.Zakończenie procedury z End Sub lub End Function instrukcji, jak właściwe.
W poniższym przykładzie przedstawiono procedurę zdefiniowane z opcjonalny parametr, równoważne zbiór dwie procedury przeciążony i wreszcie przykłady zarówno nieprawidłowe, jak i prawidłowe wersje przeciążone.
Sub q(ByVal b As Byte, Optional ByVal j As Long = 6)
' The preceding definition is equivalent to the following two overloads. ' Overloads Sub q(ByVal b As Byte) ' Overloads Sub q(ByVal b As Byte, ByVal j As Long)
' Therefore, the following overload is not valid because the signature is already in use. ' Overloads Sub q(ByVal c As Byte, ByVal k As Long) ' The following overload uses a different signature and is valid. Overloads Sub q(ByVal b As Byte, ByVal j As Long, ByVal s As Single)
Wiele parametrów opcjonalnych
Procedury z więcej niż jeden parametr opcjonalny należy zwykle więcej niż dwie wersje przeciążone.Na przykład jeśli istnieją dwa parametry opcjonalne, a kod wywołujący może dostarczyć lub pominąć każdego z nich niezależnie, muszą się cztery wersje przeciążony, jeden dla każdej możliwej kombinacji podanych argumentów.
Jak wzrasta liczba parametrów opcjonalnych, zwiększa się złożoność przeciążenie.O ile nie są dopuszczalne, dla niektórych kombinacji podanych argumentów N parametry opcjonalne, należy 2 ^ N przeciążony wersji.W zależności od charakteru procedury może się okazać, że przejrzystość logiki uzasadnia dodatkowy wysiłek definiowania przeciążony wersje.
Na przeciążenie procedurę, która zajmuje więcej niż jeden parametr opcjonalny
Określić kombinacje podanych argumentów opcjonalnych są akceptowane przez logikę procedury.Kombinacja niedopuszczalne może powstać w przypadku jeden parametr opcjonalny zależy od innego.Na przykład jeśli jeden parametr akceptuje Imię współmałżonka i innym akceptuje wiek małżonka, kombinacja argumentów dostarczanie wieku, ale pominięcie nazwy jest niedopuszczalne.
Dla każdej kombinacji dopuszczalnych podanych argumentów opcjonalnych zapisu Sub lub Function instrukcji deklaracji, który definiuje lista odpowiednich parametrów.Nie należy używać Optional słowa kluczowego.
W przypadku każdego zgłoszenia, należy poprzedzić Sub lub Function słowa kluczowego z Overloads (Visual Basic) słowa kluczowego.
Po każdej deklaracji napisać kod procedury, który powinien wykonać, gdy kod wywołujący dostaw odpowiadające tej deklaracji listy parametrów listy argumentów.
Zakończenie każdej procedury z End Sub lub End Function instrukcji, jak właściwe.
Zobacz też
Zadania
Procedury rozwiązywania problemów (Visual Basic)
Porady: definiowanie wielu wersji procedury (Visual Basic)
Porady: wywoływanie procedury przeciążenia (Visual Basic)
Porady: przeciążanie procedury wykorzystującej nieokreśloną liczbę parametrów (Visual Basic)
Koncepcje
Parametry i argumenty procedur (Visual Basic)
Parametry opcjonalne (Visual Basic)
Parameter — Tablice (Visual Basic)