Como passar um método como um parâmetro na função C
-
Utilize
Func
Delegado para passar um método como parâmetro emC#
-
Utilize o
Action
Delegado para passar um método como parâmetro emC#
Este artigo introduzirá diferentes métodos para passar um método como parâmetro na função C#.
- Usando o delegado
Func
- Usando o delegado
Action
Utilize Func
Delegado para passar um método como parâmetro em C#
Utilizaremos o delegado embutido Func
para passar um método como parâmetro. Um delegado age como um ponteiro de função. A sintaxe correta para utilizar este delegado é a seguinte.
public delegate returnType Func<in inputType, out returnType>(InputType arg);
O delegado embutido Func
tem N parâmetros. Os detalhes de seus parâmetros são os seguintes.
Parâmetros | Descrição | |
---|---|---|
inputType |
obrigatório | É o tipo de valores de entrada para este delegado. Pode haver N número de valores de entrada. |
returnType |
obrigatório | É o tipo do valor de retorno. O último valor deste delegado é considerado como o tipo de retorno. |
O programa abaixo mostra como podemos utilizar o delegado Func
para passar um método como um parâmetro.
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);
}
}
Utilize o Action
Delegado para passar um método como parâmetro em C#
Também podemos utilizar o delegado embutido Action
para passar um método como parâmetro. A sintaxe correta para utilizar este delegado é a seguinte.
public delegate void Action<in T>(T obj);
O delegado embutido Action
pode ter 16 parâmetros como entrada. Os detalhes de seus parâmetros são os seguintes.
Parâmetros | Descrição | |
---|---|---|
T |
obrigatório | É o tipo de valores de inteiro para este delegado. Pode haver 16 valores de inteiro. |
O programa abaixo mostra como podemos utilizar o delegado Action
para passar um método como parâmetro.
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"));
}
Artigo relacionado - Csharp Method
- Parâmetro opcional em C#
- Como ordenar uma lista por uma propriedade no objeto em C#
- C# Passar Múltiplos Parâmetros para um Método Get