title: C# Know how many EventHandlers are set?
body: <p>As we all know, we can create an EventHandler and add methods to it N number of times. Like:</p>
  
  <pre><code>   // Declare and EventHandler     
     public event EventHandler InternetConnectionAvailableEvent;
      private void OnInternetConnectionAvailableEvent()
      {
          if (InternetConnectionAvailableEvent != null)
          {
              EventHandler handle = InternetConnectionAvailableEvent;
  
              EventArgs e = EventArgs.Empty;
              handle(this, e);
          }
      }
  
  
     // IN OTHER CLASS WHERE I USE THE EVENT
     // Set the method name to handle the event    
     monitorInternet.InternetConnectionAvailableEvent += HandleInternetConnectionEvent;
  
      void HandleInternetConnectionEvent(object sender, EventArgs e)
      {
          if (syncContext != null)
          {
              MonitorInternetConnection mic = (MonitorInternetConnection)sender;
              if (mic != null)
              {
                  syncContext.Post(o =&gt; InternetConnected(), null);
              }
          }
      }
  
     // To remove
     monitorInternet.InternetConnectionAvailableEvent -= null; 
  </code></pre>
  
  <p><strong>UPDATE :</strong></p>
  
  <pre><code>   // To remove it should be 
     monitorInternet.InternetConnectionAvailableEvent -= HandleInternetConnectionEvent;  // CORRECT
  </code></pre>
  
  <p>Same method can be called multiple times without removing it.</p>
  
  <p>If I make <code>monitorInternet.InternetConnectionAvailableEvent -= null;</code>, all the event handlers be removed. I mean if it is set 2-3 times, and removed only once, by making it null, also all the other methods will be removed automatically. </p>
  
  <p>I believe it will, but I just wanted to confirm with you experts. While googling I didn't get my required satisfactory answer. </p>
  
  <p>Please correct me if am wrong.</p>