В C # 3.0 введены лямбда-выражения, которые позволяют отказаться от объявления сигнатур обратного вызова (или делегирования). Это позволяет вам делать такие вещи, как:
static void GiveMeTheDate(Action<int, string> action)
{
var now = DateTime.Now;
action(now.Day, now.ToString("MMMM"));
}
GiveMeTheDate((day, month) => Console.WriteLine("Day: {0}, Month: {1}", day, month));
// prints "Day: 3, Month: April"