title: VB to C# - auto naming of event handlers vs explicit wiring
body: <p>Sorry if this is a duplicate; I have searched extensively for a basic explanation.  </p>
  
  <p><strong>TL;DR - I already know how to wire up events, my question relates to supporting information and event handler naming convention(s)</strong>, which I cannot find an answer to. Having already read <a href="https://stackoverflow.com/questions/794332/migrating-handles-from-vb-net-to-c-sharp">here</a>, <a href="http://www.codeproject.com/Articles/20550/C-Event-Implementation-Fundamentals-Best-Practices" rel="nofollow noreferrer">here</a>, <a href="https://stackoverflow.com/questions/724085/events-naming-convention-and-style">here</a>, <a href="https://msdn.microsoft.com/en-us/library/h0eyck3s(v=vs.71).aspx" rel="nofollow noreferrer">here</a>, and <a href="https://social.msdn.microsoft.com/Forums/vstudio/en-US/57d20d38-8820-4db7-8e91-bb5f50a08fd8/what-is-the-c-equivalent-to-handles-meclick?forum=csharpgeneral" rel="nofollow noreferrer">here</a> I think information overload has confused me, or I'm overlooking the obvious.</p>
  
  <p>I have a huge web forms (VB) solution that needs converting to C#, starting with some Web Forms Server Control projects.  Within each, VB uses the <code>Handles</code> word to wire up event handlers:</p>
  
  <pre class="lang-vb prettyprint-override"><code>Public Class Accordion
      Inherits CompositeControl
  
      Private Sub Accordion_Init(sender As Object, e As System.EventArgs) Handles Me.Init
  
      End Sub
  
      Private Sub AccordionPanelHolder_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  
      End Sub
  
      Private Sub AccordionPanelHolder_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
  
      End Sub
  
  End Class
  </code></pre>
  
  <p>When using any kind of code converter, and from my research, the C# approach means manually wiring the event handlers (code shortened for brevity):</p>
  
  <pre class="lang-cs prettyprint-override"><code>public Accordion()
  {
      PreRender += AccordionPanelHolder_PreRender;
      Load += AccordionPanelHolder_Load;
      Init += Accordion_Init;
  }
  private void AccordionPanelHolder_PreRender(object sender, System.EventArgs e)
  {
      // ...
  }
  </code></pre>
  
  <p>I'm happy with the above, however, if I create a new web form in VS then the default code is simply this:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public partial class TestPage : System.Web.UI.Page
  {
      protected void Page_Load(object sender, EventArgs e)
      {
          // to do
      }
  }
  </code></pre>
  
  <p>There is no event logic handler logic in the page.  I see that <code>AutoEventWireUp="True"</code>, when usually I would have it as <code>False</code>.  My questions therefore:</p>
  
  <ol>
  <li>What/Where is the naming convention defined that C# uses to auto wire up event handlers, as per the last example?  I'm nervous that methods could run twice.  I see that VS doesn't have the drop-down functionality for C# to create empty event handlers are that wired up.</li>
  <li>If <code>AutoEventWireUp="False"</code>, do I have to manually wire up every single event (I expect so, which is a good thing [I think...])?</li>
  </ol>