Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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
Napište deklaraci
SubneboFunction, která obsahuje volitelný parametr v seznamu parametrů.OptionalNepoužívejte klíčové slovo v této přetížené verzi.Před klíčovým slovem
Subnebo klíčovým slovemFunctionuveďte 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 Subpříkazu neboEnd Functionpří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 Subpříkazu neboEnd Functionpří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
Subpříkaz neboFunctiondeklaraci, který definuje odpovídající seznam parametrů. NepoužívejteOptionalklíčové slovo.V každé deklaraci předcházejte klíčové slovo
Subnebo klíčové slovoFunctionklíčovým slovem Přetížení.Při každém vyvolání, kde kód poskytující argumenty odpovídá seznamu parametrů této deklarace, napište kód procedury, který by se měl provést.
Ukončete každou proceduru příkazem
End SubneboEnd Functionpodle potřeby.