Esta pregunta está relacionada con C#, pero también puede aplicarse a otros idiomas. Tengo una reserva contra el uso de código como el siguiente:C#: ¿Llamar explícitamente a un controlador de eventos es realmente "algo bueno que hacer"?
using System.Windows.Forms;
class MyForm : Form
{
private Timer myTimer;
private Button myButton;
public MyForm()
{
// Initialize the components, etc.
myTimer.Tick += new EventHandler(myTimer_Tick);
myButton.Click += new EventHandler(myButton_Click);
myTimer.Start();
}
private void myTimer_Tick(object sender, EventArgs eventArgs)
{
myTimer.Stop();
// also, I see a lot of usage of
// Timer.Enabled = true/false instead of -^
myButton_Click(this, ea /* or event EventArgs.Empty, or null */);
return;
}
private void myButton_Click(object sender, EventArgs eventArgs)
{
// do a lot of stuff, with lots of logic that doesn't even use the
// state of the eventArgs
return;
}
}
Estoy solo, en la que el estilo anterior es una manía mía? ¿Hay otros que disfrutan la claridad de separar el manejo de eventos de la carga de trabajo de las funciones, o incluso separar las rutinas complejas en funciones separadas?
¿Hay incluso un estilo aceptado? Siento que cualquier expresividad y flexibilidad que el manejo de eventos en C# tiene se puede perder con estilos como este. Siento que si tiene un método que significa "se ha hecho clic en un botón", solo se debe llamar cuando se hace clic en un botón.
Para aquellos que escriben de esta manera, diría: si insistes en tener un método EventHandler para manejar tu temporizador y tu botón, llamalo de otra manera que no sea button_Click - quizás "handleUserEvent(object sender, EventArgs eventArgs)
".
Realmente, sin embargo, la pregunta es, ¿hay alguna guía de estilo ampliamente utilizada que apoye o desaliente el uso como el anterior?
Sí, esta no es una buena práctica, en mi opinión tampoco. Su idea de 'HandleUserEvent' es probablemente una buena manera de evitarlo, aunque probablemente pueda nombrarlo mejor en la mayoría de las situaciones. – Noldorin