Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha egy eljárás egy vagy több választható paraméterrel rendelkezik, nem definiálhat olyan túlterhelt verziót, amely megfelel bármelyik implicit túlterhelésnek. További információért lásd az "Opcionális paraméterek implicit túlterhelései" című részt az eljárások túlterhelési szempontjai között.
Egy választható paraméter
Egy választható paramétert használó eljárás túlterhelése
Írjon egy
SubvagyFunctiondeklarációs utasítást, amely tartalmazza az opcionális paramétert a paraméterlistában. Ebben a túlterhelt verzióban ne használja aOptionalkulcsszót.Írja meg azt az eljáráskódot, amelyet akkor kell végrehajtani, amikor a hívó kód megadja az opcionális argumentumot.
Az eljárást a megfelelő
End SubvagyEnd Functionutasítással fejezze be.Írjon egy második deklarációs utasítást, amely megegyezik az első deklarációval, azzal a kivételével, hogy nem tartalmazza az opcionális paramétert a paraméterlistában.
Írja meg azt az eljáráskódot, amelyet akkor kell végrehajtani, ha a hívó kód nem adja meg az opcionális argumentumot. Az eljárást a megfelelő
End SubvagyEnd Functionutasítással fejezze be.Az alábbi példa egy választható paraméterrel definiált eljárást, két túlterhelt eljárás egyenértékű készletét, végül pedig az érvénytelen és az érvényes túlterhelt verziókat mutatja be.
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)
Több választható paraméter
Egynél több opcionális paraméterrel rendelkező eljáráshoz általában kétnál több túlterhelt verzióra van szükség. Ha például két választható paraméter létezik, és a hívó kód egymástól függetlenül is képes megadni vagy kihagyni azokat, négy túlterhelt verzióra van szükség, egyet a megadott argumentumok minden lehetséges kombinációjához.
Az opcionális paraméterek számának növekedésével a túlterhelés összetettsége nő. Ha a megadott argumentumok bizonyos kombinációi nem elfogadhatóak, az N választható paraméterek esetében 2 ^ N túlterhelt verzióra van szükség. Az eljárás jellegétől függően előfordulhat, hogy a logika egyértelműsége indokolja az összes túlterhelt verzió meghatározásának további erőfeszítését.
Egynél több opcionális paramétert igénylő eljárás túlterhelése
Határozza meg, hogy a megadott választható argumentumok mely kombinációi elfogadhatók az eljárás logikája számára. Elfogadhatatlan kombináció akkor fordulhat elő, ha az egyik választható paraméter egy másiktól függ. Ha például az egyik paraméter elfogadja egy személy nevét, egy másik pedig elfogadja a személy életkorát, akkor az életkort megadó argumentumok kombinációja, de a név kihagyása elfogadhatatlan.
Az opcionálisan megadott argumentumok minden elfogadható kombinációjához írjon egy
SubvagyFunctiondeklarációs utasítást, amely meghatározza a megfelelő paraméterlistát. Ne használja a kulcsszótOptional.Minden deklarációban előzze meg a
SubvagyFunctionkulcsszót a Overloads kulcsszóval.Az egyes deklarációk után írja meg azt az eljáráskódot, amelyet akkor kell végrehajtani, amikor a hívó kód az adott deklaráció paraméterlistájának megfelelő argumentumlistát ad meg.
Az egyes eljárásokat a
End SubvagyEnd Functionutasítással fejezze be, a helyzetnek megfelelően.
Lásd még
- Eljárások
- Eljárásparaméterek és argumentumok
- választható paraméterek
- paramétertömbök
- Metódus túlterhelés
- hibaelhárítási eljárások
- Útmutató: Eljárás több verziójának definiálása
- Hogyan hívjunk meg egy túlterhelt eljárást
- Útmutató: Olyan eljárás túlterhelése, amely határozatlan számú paramétert
- Túlterhelés feloldás