Como passar um método como um parâmetro na função C

Minahil Noor 12 outubro 2023
  1. Utilize Func Delegado para passar um método como parâmetro em C#
  2. Utilize o Action Delegado para passar um método como parâmetro em C#
Como passar um método como um parâmetro na função C

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

Artigo relacionado - Csharp Parameter