¿Es una mala práctica escribir manejadores de eventos en línea?¿Es una mala práctica escribir manipuladores de eventos en línea
Para mí, prefiero usarlo cuando quiera utilizar una variable local en el controlador de eventos como el siguiente:
Yo prefiero esta:
// 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();
}
lugar de esto:
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();
}
Sí, las lambdas y los cierres están seguros eeevil ... – delnan
Creo que depende de tu equipo. Si todo el mundo está al tanto de esas características, está bien. Personalmente me gusta hacer que las lambdas sean más obvias en una línea separada, etc., me gusta codificar para que 1 línea de código haga 1 cosa. – kenny
+1 @kenny Estoy de acuerdo contigo, esto hace que el código sea más legible. –