Cómo pasar un método como parámetro en la función C#

Minahil Noor 16 febrero 2024
  1. Usar Func Delegado para pasar un método como parámetro en C#
  2. Usar el delegado Action para pasar un método como parámetro en C#
Cómo pasar un método como parámetro en la función C#

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

Artículo relacionado - Csharp Parameter