Passare un metodo come parametro nella funzione C#
-
Usa il delegato
Func
per passare un metodo come parametro inC#
-
Usa il delegato
Action
per passare un metodo come parametro inC#
Questo articolo introdurrà diversi metodi per passare un metodo come parametro nella funzione C#.
- Utilizzo del delegato
Func
- Utilizzo del delegato
Action
Usa il delegato Func
per passare un metodo come parametro in C#
Useremo il delegato incorporato Func
per passare un metodo come parametro. Un delegato agisce come un puntatore a funzione. La sintassi corretta per utilizzare questo delegato è la seguente.
public delegate returnType Func<in inputType, out returnType>(InputType arg);
Il delegato incorporato Func
ha N parametri. I dettagli dei suoi parametri sono i seguenti.
Parametri | Descrizione | |
---|---|---|
inputType |
obbligatorio | È il tipo di valori di input per questo delegato. Può esserci un numero N di valori di input. |
returnType |
obbligatorio | È il tipo di valore restituito. L’ultimo valore di questo delegato è considerato come il tipo restituito. |
Il programma seguente mostra come possiamo usare il delegato Func
per passare un metodo come parametro.
public class MethodasParameter {
public int Method1(string input) {
return 0;
}
public int Method2(string input) {
return 1;
}
public bool RunMethod(Func<string, int> MethodName) {
int i = MethodName("This is a string");
return true;
}
public bool Test() {
return RunMethod(Method1);
}
}
Usa il delegato Action
per passare un metodo come parametro in C#
Possiamo anche usare il delegato incorporato Action
per passare un metodo come parametro. La sintassi corretta per utilizzare questo delegato è la seguente.
public delegate void Action<in T>(T obj);
Il delegato incorporato Action
può avere 16 parametri come input. I dettagli dei suoi parametri sono i seguenti.
Parametri | Descrizione | |
---|---|---|
T |
obbligatorio | È il tipo di valori di input per questo delegato. Possono essere presenti 16 valori di input. |
Il programma seguente mostra come possiamo usare il delegato Action
per passare un metodo come parametro.
public class MethodasParameter {
public int Method1(string input) {
return 0;
}
public int Method2(string input) {
return 1;
}
public bool RunTheMethod(Action myMethodName) {
myMethodName();
return true;
}
RunTheMethod(() => Method1("MyString1"));
}
Articolo correlato - Csharp Method
- Ordinare una lista in base a una proprietà nell'oggetto in C#
- Parametro facoltativo in C#
- C# Passa più parametri a un metodo Get