Première nouveauté intéressante, les méthodes anonymes. Elles permettent de construire une méthode sans la nommer ou, plus clairement, passer un bloc de code en tant que paramètre.
Voyons deux cas simples:

// Méthode anonyme avec une seule instruction
monBouton.Click += new EventHandler(sender, e)
{MessageBox.Show(”test”);};

// Méthode anonyme avec plusieurs instructions
monBouton.Click+= new EventHandler(sender, e)
{
string test = “Le bouton appuyé est ” + sender;
Console.WriteLine(test + ” avec l’event ” + e);
}

// avant vous auriez eu
monBouton.Click+= new EventHandler(this.maMethode)

private void maMethode(object sender, EventArgs e)
{
string test = “Le bouton appuyé est ” + sender;
Console.WriteLine(test + ” avec l’event ” + e);
}

Ainsi, pour des cas bien particuliers (par exemple lorsque vous savez que la méthode ne sera JAMAIS appelée autre part dans le code), il est possible d’appeler plusieurs lignes de code sans les mettre dans une méthode tierce. Ceci était déjà faisable en JAVA par exemple.

Source : developpez.com