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. Sub Napište příkaz nebo Function deklaraci, který obsahuje volitelný parametr v seznamu parametrů. Optional Nepoužívejte klíčové slovo v této přetížené verzi.

  2. Sub Před klíčovým slovem Nebo Function klíčové slovo zadejte 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řed Sub klíčové slovo nebo Function klíčové slovo pomocí klíčového slova Přetížení .

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

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

Viz také