title: C#: is calling an event handler explicitly really "a good thing to do"?
body: <p>This question is related to C#, but may be applicable to other languages as well. I have a reservation against using code such as the following:</p>
  
  <pre><code>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;
      }
  }
  </code></pre>
  
  <p>Am I alone, in that the above style is a pet peeve of mine? Are there others who enjoy the clarity of separating event handling from the workload of functions, or even separating out complex routines into separate functions?</p>
  
  <p>Is there even an accepted style? I feel like any expressiveness and flexibility that event handling in C# has can be lost with styles like this. I feel like if you have a method that means "a button has been clicked", then it should only be called when a button is clicked.</p>
  
  <p>To those who write like this, I would say: if you insist on having an EventHandler method to handle your timer tick, and your button click, then call it something other than button_Click -- perhaps "<code>handleUserEvent( object sender, EventArgs eventArgs )</code>".</p>
  
  <p>Really, though, the question is, are there any style guidelines that are widely used which either support or discourage usage such as the above?</p>