Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se una routine ha un parametro ParamArray , non è possibile definire una versione di overload che accetta una matrice unidimensionale per la matrice di parametri. Per ulteriori informazioni, vedere "Sovrapposizioni implicite per un parametro ParamArray" nelle Considerazioni sulle procedure di sovrapposizione.
Per eseguire l'overload di una routine che accetta un numero variabile di parametri
Verificare che la procedura e la logica del codice chiamante tragga vantaggio dalle versioni sovraccaricate più che da un
ParamArrayparametro. Vedere "Overload e ParamArrays" in Considerazioni sulle procedure di overload.Determinare i numeri di valori specificati che la procedura deve accettare nella parte variabile dell'elenco di parametri. Ciò può includere il caso di nessun valore e può includere il caso di una singola matrice unidimensionale.
Per ogni numero accettabile di valori forniti, scrivere un'istruzione
SuboFunctiondichiarazione che definisce l'elenco di parametri corrispondente. Non usare né la parola chiaveOptionalné la parola chiaveParamArrayin questa versione sovraccaricata.In ogni dichiarazione, precedere la parola chiave
SuboFunctioncon la parola chiave Overloads.Dopo ogni dichiarazione, scrivere il codice della routine che deve essere eseguito quando il codice chiamante fornisce valori corrispondenti all'elenco di parametri di tale dichiarazione.
Terminare ogni procedura con l'istruzione
End SuboEnd Functiona seconda dei casi.
Esempio
Nell'esempio seguente viene illustrata una routine definita con un parametro ParamArray e quindi un set equivalente di routine di overload.
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.
Non è possibile eseguire l'overload di una routine di questo tipo con un elenco di parametri che accetta una matrice unidimensionale per la matrice di parametri. Tuttavia, è possibile utilizzare le definizioni degli altri sovraccarichi impliciti. Le dichiarazioni seguenti illustrano questa situazione.
' 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)
Il codice nelle versioni di overload non deve verificare se il codice chiamante ha fornito uno o più valori per il ParamArray parametro o, in caso affermativo, quanti. Visual Basic passa il comando alla versione che corrisponde all'elenco degli argomenti di chiamata.
Compilare il codice
Poiché una routine con un ParamArray parametro equivale a un set di versioni di overload, non è possibile eseguire l'overload di una routine di questo tipo con un elenco di parametri corrispondente a uno di questi overload impliciti. Per ulteriori informazioni, vedere Considerazioni sul sovraccarico delle procedure.
Sicurezza di .NET Framework
Ogni volta che si gestisce una matrice che può essere a tempo indefinito di grandi dimensioni, esiste il rischio di sovraccaricare alcune capacità interne dell'applicazione. Se si accetta una matrice di parametri, è necessario verificare la lunghezza della matrice a cui è stato passato il codice chiamante ed eseguire le operazioni appropriate se è troppo grande per l'applicazione.
Vedere anche
- Procedure
- Parametri e argomenti della procedura
- parametri facoltativi
- matrici di parametri
- Sovraccarico di Procedure
- procedure di risoluzione dei problemi
- Procedura: Definire più versioni di una routine
- Come chiamare una procedura sovraccaricata
- Procedura: Sovraccaricare una procedura che accetta parametri facoltativi
- Risoluzione del sovraccarico