L'ajout d'une fonction au call d'un évènement a toujours été quelque chose de laid, de difficile à lire pour quelqu'un de différent de celui qui l'a définie.
Les méthodes anonymes de c# 3.5 simplifie grandement l'écriture de ces fonctions.
Pour exemple :
Un simple évènement "OnMyEvent" qui, une foi appellé, incrémente la variable entière "NombreDeCall".
Sans les méthodes anonymes, voici ce que celà donne :
[code:c#]
event EventHandler OnMyEvent;
int NombreDeCall = 0;
public void FonctionQuelconque()
{
OnMyEvent +=
new EventHandler(Program_OnMyEvent);
}
public void FonctionCallEvent()
{
if (OnMyEvent != null)
OnMyEvent(this, null);
}
void Program_OnMyEvent(object sender, EventArgs e)
{
NombreDeCall++;
}
[/code]
Avec les méthodes anonymes, nous n'avons plus à décrire le prototype de la fonction "Program_OnMyEvent".
En effet, cette fonction n'ayant pour but que d'être appellé par l'évènement "OnMyEvent", le programmeur n'a aucune utilité de la nommer.
Le code devient ainsi :
[code:c#]
event EventHandler OnMyEvent;
int NombreDeCall = 0;
public void FonctionQuelconque()
{
OnMyEvent += (sender, e) =>
{
NombreDeCall++;
};
}
public void FonctionCallEvent()
{
if (OnMyEvent != null)
OnMyEvent(this, null);
}
[/code]
Cette méthode anonyme est écrite de la facon suivante :
[code:c#]
( liste des noms donné aux paramètres dont les types sont déduit par le compilateur ) =>
{
//corp de la fonction
};
[/code]