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

  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

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

  • C# Passar Múltiplos Parâmetros para um Método Get
  • Como ordenar uma lista por uma propriedade no objeto em C#
  • Artigo relacionado - Csharp Parameter

  • Parâmetro opcional em C#