Outra forma de utilizar Action é para a criação de métodos anônimos. Esses possuem as mesma
características em relação ao uso de um ou mais parâmetros e também o uso de ref e out.
Um método anônimo não possui nome, mas precisa utilizar a palavra reservada delegate como
mostrado na sintaxe abaixo:
Sintaxe
Action<T1,T2,...,T16> = delegate(T1 obj1, T2 obj, TN objN)
{
//corpo
}
Exemplo 4
using System;
public class Program
{
public static void Main(string[] args)
{
Action<string> minhaAction = delegate(string msg)
{
Console.WriteLine(msg);
};
minhaAction("Metodo anonimo com Action");
}
}
Saída
Metodo anonimo com Action
Com Action podemos declarar métodos anônimos utilizando expressão lambda como no exemplos abaixo
mostrado.
Exemplo 5
using System;
public class Program
{
public static void Main(string[] args)
{
Action<string> minhaAction = (msg) => Console.WriteLine(msg);
minhaAction("Action com lambda");
}
}
Saída
Action com lambda
É válido lembra que expressões lambda podem acessar variáveis e objetos em um escopo superior da qual foi
declarada.