Ações como parâmetros

Na maioria dos casos, as ações são parâmetros de método úteis. Considere que você deve executar algum código na transação. Você pode fazer assim:

With.Transaction(() => {
// some code
});

Transação é um método estático da classe With:

public class With
{
public static void Transaction(Action<T> action)
{
using (Transaction t = new Transaction())
{
action
();
t
.Complete();
}
}
}

O método Whit pode ser reutilizado e pode ser sobrecarregado com uma coleção de ações ou / e ações com diferentes parâmetros