Est-ce une mauvaise pratique d'écrire des gestionnaires d'événements en ligne ?
En ce qui me concerne, je préfère l'utiliser lorsque je veux utiliser une variable locale dans le gestionnaire d'événements, comme dans l'exemple suivant :
Je préfère ça :
// This is just a sample
private void Foo()
{
Timer timer = new Timer() { Interval = 1000 };
int counter = 0; // counter has just this mission
timer.Tick += (s, e) => myTextBox.Text = (counter++).ToString();
timer.Start();
}
Au lieu de ça :
int counter = 0; // No need for this out of Boo & the event handler
private void Boo()
{
Timer timer = new Timer() { Interval = 1000 };
timer.Tick += timer_Tick;
timer.Start();
}
void timer_Tick(object sender, EventArgs e)
{
myTextBox.Text = (counter++).ToString();
}