C# : Créer rapidement un événement
27/08/2008
Etapes de création d’un événement customisé complet (C#):
- 1- DANS LA CLASSE SOULEVANT L’EVENEMENT
- Delegate :
public delegate void MonHandler(object sender, MonEventArgs e);
- L’événement lui-même:
public event MonHandler On_QuelqueChoseSePassed;
- Classe "MonEventArgs" :
public class MonEventArgs : EventArgs
{
private int _iInformation1;
private string _sInformation2;
internal MFluxEventArgs(int iInfo1, string sInfo2)
{
_iInformation1 = iInfo1;
_sInformation2 = sInfo2;
}
public int Information1
{
get { return _iInformation1; }
}
public string Information2
{
get { return _sInformation2; }
}
}
- Fonction qui lance l’événement :
private void FireQuelqueChoseSePassed(MonEventArgs e)
{
if (On_QuelqueChoseSePassed != null)
{
On_QuelqueChoseSePassed(this, e);
}
}
- Maintenant, dans mon code, je vais avertir quand quelque chose se passe :
...
FireQuelqueChoseSePassed(new MFluxEventArgs(15, "On est ici"));
...
- 2- AILLEURS, on souhaite s’abonner à l’événement :
-
On abonne une fonction de la même signature que le delegate :
MaClasse.On_QuelqueChoseSePassed +=new MaClasse.MonHandler(LaFonctionQuiVaRecevoirLEvent);
- La fonction abonnée :
protected void LaFonctionQuiVaRecevoirLEvent(object sender, MonEventArgs e)
{
// Ici, on peut utiliser "sender" (objet MaClasse instancié), ou "e" (qui contient un entier et un string...)
}