Formazione
Modulo
Creare metodi C# con parametri - Training
Questo modulo illustra i parametri dei metodi, inclusi i tipi di parametro pass-by-reference e pass-by-value. Descrive anche gli argomenti facoltativi e denominati.
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Il compilatore di Visual Basic deve decidere quale sovraccarico chiamare quando una procedura è definita in diverse versioni sovraccariche. Decide eseguendo i passaggi seguenti:
On
oppure Off
.Nella figura seguente viene illustrato il processo che determina quale di un set di versioni sovraccariche chiamare.
Nell'esempio seguente viene illustrato questo processo di risoluzione dell'overload.
Overloads Sub z(ByVal x As Byte, ByVal y As Double)
End Sub
Overloads Sub z(ByVal x As Short, ByVal y As Single)
End Sub
Overloads Sub z(ByVal x As Integer, ByVal y As Single)
End Sub
Dim r, s As Short
Call z(r, s)
Dim p As Byte, q As Short
' The following statement causes an overload resolution error.
Call z(p, q)
Nella prima chiamata il compilatore elimina il primo overload perché il tipo del primo argomento (Short
) si restringe al tipo del parametro corrispondente (Byte
). Elimina quindi il terzo overload perché ogni tipo di argomento nel secondo overload (Short
e Single
) si estende al tipo corrispondente nel terzo overload (Integer
e Single
). Il secondo overload richiede un'espansione minore, quindi il compilatore lo utilizza per la chiamata.
Nella seconda chiamata, il compilatore non può eliminare alcuno degli overload basato sul restringimento. Elimina il terzo overload per lo stesso motivo della prima chiamata, perché può chiamare il secondo overload con minore estensione dei tipi di argomento. Tuttavia, il compilatore non è in grado di distinguere tra il primo e il secondo sovraccarico. Ognuno ha un tipo di parametro definito che si estende al tipo corrispondente nell'altro (Byte
a Short
, ma Single
a Double
). Il compilatore genera quindi un errore di risoluzione dell'overload.
Se due sovraccarichi di una procedura hanno una firma identica, a eccezione del fatto che l'ultimo parametro è dichiarato facoltativo in uno e ParamArray nell'altro, il compilatore risolve una chiamata a tale procedura come indicato di seguito:
Se la chiamata fornisce l'ultimo argomento, come | Il compilatore risolve la chiamata all'overload dichiarando l'ultimo argomento come |
---|---|
Nessun valore (argomento omesso) | Optional |
Un singolo valore | Optional |
Due o più valori in un elenco delimitato da virgole | ParamArray |
Matrice di qualsiasi lunghezza (inclusa una matrice vuota) | ParamArray |
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
Formazione
Modulo
Creare metodi C# con parametri - Training
Questo modulo illustra i parametri dei metodi, inclusi i tipi di parametro pass-by-reference e pass-by-value. Descrive anche gli argomenti facoltativi e denominati.
Documentazione
L'istruzione non può trovarsi all'interno di un corpo di interfaccia - Visual Basic
Altre informazioni su: L'istruzione non può trovarsi all'interno di un corpo di interfaccia
'<specifier>' non è valido in una dichiarazione di variabile membro - Visual Basic
Altre informazioni su: '' non è valido in una dichiarazione di variabile membro