Sdílet prostřednictvím


Postupy: Přetížení procedury, která přebírá nekonečný počet parametrů (Visual Basic).

Pokud byl postup ParamArray (Visual Basic) parametr, nelze definovat přetížené verze, přičemž jednorozměrné pole parametru.Další informace naleznete v části "Implicitní přetížení pro parametrem ParamArray" v Aspekty přetížení procedur (Visual Basic).

Přetěžování proceduru, která má proměnný počet parametrů

  1. Zjistit postup a volání kódu logiky výhody z přetížení verze z více než ParamArray parametr."Přetížení a ParamArrays" Aspekty přetížení procedur (Visual Basic).

  2. Určete, která čísla zadané hodnoty proměnné části seznamu parametrů by měla přijímat postupem.Patří v případě žádnou hodnotu a v případě jednoho jednorozměrné pole může obsahovat.

  3. Každý přijatelný počet zadaných hodnot zápisu Sub nebo Function prohlášení příkaz, který definuje odpovídající seznam parametrů.Nepoužívejte buď Optional nebo ParamArray klíčové slovo v této verzi přetížené.

  4. V každém prohlášení předcházet Sub nebo Function klíčové slovo Přetížení (Visual Basic) klíčové slovo.

  5. Po každé prohlášení zapisovat postup kód, který má být spuštěn, když volající kód dodá odpovídající prohlášení, že parametr seznamu hodnot.

  6. Ukončení každého postupu se End Sub nebo End Function prohlášení podle potřeby.

Příklad

Následující příklad ukazuje postup definován ParamArray (Visual Basic) parametr a rovnocenné množinou přetížené procedury.

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.

Nelze přetěžování postup, pomocí seznamu parametr, který trvá jednorozměrné pole parametru.Můžete však použít podpisy implicitní přetížení.Následující prohlášení ilustrují to.

' 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)

Kód verze přetížené nemá otestovat, zda dodané volající kód hodnoty jedné nebo více ParamArray parametr, a pokud ano, kolik.Visual Basicřízení průchodů verze odpovídající volání seznam argumentů.

Probíhá kompilace kódu

Protože procedura ParamArray parametr je ekvivalentní sadu verze přetížené, tento postup nelze přetěžování parametr seznam odpovídající některé z těchto implicitní přetížení.Další informace naleznete v tématu Aspekty přetížení procedur (Visual Basic).

Zabezpečení

Při řešení matice, které mohou být bez omezení velké riziko překročení některé vnitřní kapacity aplikace již existuje.Pokud přijmete parametr array, by test pro délku pole předána volající kód a přijmout vhodná opatření, pokud je příliš velký pro aplikace.

Viz také

Úkoly

Řešení potíží s procedurami (Visual Basic)

Postupy: Definice více verzí procedury (Visual Basic)

Postupy: Volání přetížené procedury (Visual Basic)

Postupy: Přetížení procedury, která přebírá volitelné parametry (Visual Basic)

Koncepty

Procedury v jazyce Visual Basic

Parametry a argumenty procedury (Visual Basic)

Volitelné parametry (Visual Basic)

Pole parametrů (Visual Basic)

Procedura přetížení (Visual Basic)

Rozlišení přetěžování (Visual Basic)