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 ParamArray paraméterrel rendelkezik , nem definiálhat túlterhelt verziót, amely egydimenziós tömböt vesz fel a paramétertömbhöz. További információért lásd: "Implicit túlterhelések egy ParamArray paraméterhez" a Túlterhelési eljárások szempontjai című részben.
Változó számú paramétert használó eljárás túlterhelése
Győződjön meg arról, hogy az eljárás és a kódlogika meghívása több előnyt biztosít a túlterhelt verzióknak, mint egy
ParamArrayparaméternek. Lásd: "Túlterhelések és paramétertömbök" az eljárások túlterhelésének szempontjai alatt.Határozza meg, hogy az eljárás milyen számú megadott értéket fogadjon el a paraméterlista változó részében. Ez magában foglalhatja az érték nélküli esetet, és egyetlen egydimenziós tömb esetét is.
Minden elfogadható számú megadott érték esetén írjon be egy
SubvagyFunctiondeklarációs utasítást, amely meghatározza a megfelelő paraméterlistát. Ebben a túlterhelt verzióban ne használja sem aOptionalkulcsszót, sem aParamArraykulcsszót.Minden deklarációban előzze meg a
SubvagyFunctionkulcsszót a Overloads kulcsszóval.Minden egyes deklarációt követően írja be az eljáráskódot, amelyet akkor kell végrehajtani, amikor a hívó kód megadja az adott deklaráció paraméterlistájának megfelelő értékeket.
Az egyes eljárásokat a
End SubvagyEnd Functionutasítással fejezze be, a helyzetnek megfelelően.
példa
Az alábbi példa egy ParamArray paraméterrel definiált eljárást, majd a túlterhelt eljárások egyenértékű készletét mutatja be.
Sub p(ByVal d As Date, ByVal ParamArray c() As Char)
' The preceding definition is equivalent to the following overloads.
' Overloads Sub p(ByVal d As Date)
' Overloads Sub p(ByVal d As Date, ByVal c() As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char)
' Overloads Sub p(ByVal d As Date, ByVal c1 As Char, ByVal c2 As Char)
' And so on, with an additional Char argument in each successive overload.
Az ilyen eljárásokat nem lehet túlterhelni olyan paraméterlistával, amely egydimenziós tömböt vesz igénybe a paramétertömbhöz. Használhatja azonban a többi implicit túlterhelés aláírását is. Ezt az alábbi deklarációk szemléltetik.
' The following overload is not valid because it takes an array for the parameter array.
' Overloads Sub p(ByVal x As Date, ByVal y() As Char)
' The following overload takes a single value for the parameter array and is valid.
Overloads Sub p(ByVal z As Date, ByVal w As Char)
A túlterhelt verziók kódjának nem kell tesztelnie, hogy a hívó kód adott-e meg egy vagy több értéket a ParamArray paraméterhez, vagy ha igen, hányat. A Visual Basic a hívó argumentumlistának megfelelő verzióra továbbítja a vezérlőt.
A kód összeállítása
Mivel egy ParamArray paraméterrel rendelkező eljárás egyenértékű a túlterhelt verziók halmazával, az ilyen eljárásokat nem lehet túlterhelni ezen implicit túlterhelések egyikének megfelelő paraméterlistával. További információkért lásd a túlterhelési eljárások szempontjait.
.NET-keretrendszer biztonsága
Ha olyan tömbbel dolgozik, amely határtalanul nagy lehet, fennáll annak a veszélye, hogy meghaladja az alkalmazás belső kapacitását. Ha elfogad egy paraméterekből álló tömböt, ellenőrizze a tömb hosszát, és tegyen meg megfelelő lépéseket, ha az túl nagy az alkalmazás számára.
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ó: Eljárás túlterhelése, amely opcionális paramétereket fogad el
- Túlterhelés feloldás