Cómo pasar un método como parámetro en la función C#
-
Usar
Func
Delegado para pasar un método como parámetro enC#
-
Usar el delegado
Action
para pasar un método como parámetro enC#
Este artículo presentará diferentes métodos para pasar un método como parámetro en la función C#.
- Usando el delegado
Func
- Usando el delegado
Action
Usar Func
Delegado para pasar un método como parámetro en C#
Usaremos el delegado incorporado Func
para pasar un método como parámetro. Un delegado actúa como un puntero de función. La sintaxis correcta para usar este delegado es la siguiente.
public delegate returnType Func<in inputType, out returnType>(InputType arg);
El delegado incorporado Func
tiene N parámetros. Los detalles de sus parámetros son los siguientes.
Parámetros | Descripción | |
---|---|---|
inputType |
obligatorio | Es el tipo de valores de entrada para este delegado. Puede haber N número de valores de entrada. |
returnType |
obligatorio | Es el tipo de valor de retorno. El último valor de este delegado se considera como el tipo de retorno. |
El siguiente programa muestra cómo podemos usar el delegado Func
para pasar un método como 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);
}
}
Usar el delegado Action
para pasar un método como parámetro en C#
También podemos usar el delegado incorporado Action
para pasar un método como parámetro. La sintaxis correcta para usar este delegado es la siguiente.
public delegate void Action<in T>(T obj);
El delegado incorporado Action
puede tener 16 parámetros como entrada. Los detalles de sus parámetros son los siguientes.
Parámetros | Descripción | |
---|---|---|
T |
obligatorio | Es el tipo de valores de entrada para este delegado. Puede haber 16 valores de entrada. |
El programa de abajo muestra cómo podemos usar el delegado Action
para pasar un 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"));
}
Artículo relacionado - Csharp Method
- Parámetro opcional en C#
- Cómo ordenar una lista por una propiedad en el objeto en C#
- C# pasa múltiples parámetros a un método get
- Anular un método estático en C#
- Grupos de métodos en C#