Postupy: Přetížení procedury, která přebírá volitelné parametry (Visual Basic)
Pokud má procedura jeden nebo více volitelných parametrů, nemůžete definovat přetíženou verzi odpovídající žádnému z jeho implicitních přetížení. Další informace naleznete v tématu Implicitní přetížení pro volitelné parametry v aspektech přetížení procedur.
Jeden volitelný parametr
Přetížení procedury, která přebírá jeden volitelný parametr
Sub
Napište příkaz neboFunction
deklaraci, který obsahuje volitelný parametr v seznamu parametrů.Optional
Nepoužívejte klíčové slovo v této přetížené verzi.Sub
Před klíčovým slovem NeboFunction
klíčové slovo zadejte klíčové slovo Přetížení.Napište kód procedury, který by se měl provést, když volající kód poskytuje volitelný argument.
Podle potřeby ukončete postup pomocí
End Sub
příkazu neboEnd Function
příkazu.Napište druhý příkaz deklarace, který je identický s první deklarací s tím rozdílem, že nezahrnuje volitelný parametr v seznamu parametrů.
Napište kód procedury, který by se měl spustit, když volající kód nezadá volitelný argument. Podle potřeby ukončete postup pomocí
End Sub
příkazu neboEnd Function
příkazu.Následující příklad ukazuje proceduru definovanou s volitelným parametrem, ekvivalentní sadou dvou přetížených procedur a nakonec příklady neplatných i platných přetížených verzí.
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)
Více volitelných parametrů
Pro proceduru s více než jedním volitelným parametrem obvykle potřebujete více než dvě přetížené verze. Pokud jsou například dva volitelné parametry a volající kód může zadat nebo vynechat každý nezávisle na druhém, potřebujete čtyři přetížené verze, jednu pro každou možnou kombinaci zadaných argumentů.
S rostoucím počtem volitelných parametrů se zvyšuje složitost přetížení. Pokud nejsou některé kombinace zadaných argumentů přijatelné, pro volitelné parametry N potřebujete 2 ^ N přetížené verze. V závislosti na povaze postupu můžete zjistit, že srozumitelnost logiky odůvodňuje další úsilí definování všech přetížených verzí.
Přetížení procedury, která přebírá více než jeden volitelný parametr
Určete, které kombinace zadaných volitelných argumentů jsou přijatelné pro logiku procedury. Nepřijatelná kombinace může nastat, pokud jeden volitelný parametr závisí na jiném. Pokud například jeden parametr přijme jméno osoby a jiný přijme věk osoby, kombinace argumentů, které poskytují věk, ale vynechání jména je nepřijatelné.
Pro každou přijatelnou kombinaci zadaných volitelných argumentů napište
Sub
příkaz neboFunction
deklaraci, který definuje odpovídající seznam parametrů. NepoužívejteOptional
klíčové slovo.V každé deklaraci před
Sub
klíčové slovo neboFunction
klíčové slovo pomocí klíčového slova Přetížení .Za každou deklaraci napište kód procedury, který by se měl provést při volání kódu poskytuje seznam argumentů odpovídající seznamu parametrů této deklarace.
Ukončete každou proceduru
End Sub
podle potřeby pomocí příkazu neboEnd Function
příkazu.