Gestire un Evento in C#



Ci sono vari modi di gestire un evento in C#.
Di sicuro il più usato, anche perché fatto in automatico dal Visual Studio o anche da SharpDevelop, è quello di creare una nuova funzione che viene eseguita all’attivarsi dell’evento, vediamo un esempio con l’evento Load di un Windows Form:


/* L’evento viene gestito di default nell’InitializeComponent, assegnandogli un EventHandler e passando come argomento la funzione Form1_Load */
this.Load += new System.EventHandler(this.Form1_Load);

//Al verificarsi dell’evento Load viene quindi richiamata questa funzione:
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(“Form Loaded!”);
}

Questa modalità ha senza dubbio il vantaggio di essere chiara e soprattutto, come detto prima, viene scritta in automatico da molti IDE.

Quando le istruzioni da fare, però, sono abbastanza poche, come nel caso dell’unico MessageBox visto sopra, si può prendere in considerazione di usare un delegate anonimo.
Ecco come diventerebbe l’esempio di sopra:



this.Load += delegate
{
MessageBox.Show(“Form Loaded!”);
};

In questa maniera si rende il tutto molto più veloce e compatto.
Inoltre, se abbiamo bisogno di usare gli argomenti passati alla funzione, è possibile farlo anche con il delegate, vediamo:


this.Load += delegate(object sender, EventArgs e)
{
MessageBox.Show(“Form Loaded!”);
};

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest