Sdílet prostřednictvím


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

  1. Napište deklaraci Sub nebo Function, která obsahuje volitelný parametr v seznamu parametrů. Optional Nepoužívejte klíčové slovo v této přetížené verzi.

  2. Před klíčovým slovem Sub nebo klíčovým slovem Function uveďte klíčové slovo Přetížení.

  3. Napište kód procedury, který by se měl provést, když volající kód poskytuje volitelný argument.

  4. Podle potřeby ukončete postup pomocí End Sub příkazu nebo End Function příkazu.

  5. Napište druhý příkaz deklarace, který je identický s první deklarací s tím rozdílem, že nezahrnuje volitelný parametr v seznamu parametrů.

  6. 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 nebo End 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

  1. 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é.

  2. Pro každou přijatelnou kombinaci zadaných volitelných argumentů napište Sub příkaz nebo Function deklaraci, který definuje odpovídající seznam parametrů. Nepoužívejte Optional klíčové slovo.

  3. V každé deklaraci předcházejte klíčové slovo Sub nebo klíčové slovo Function klíčovým slovem Přetížení.

  4. 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.

  5. Ukončete každou proceduru příkazem End Sub nebo End Function podle potřeby.

Viz také