title: What does "T @this" mean in a delegate declaration?
body: <p>I've just added a weak event implementation to a project using <a href="http://diditwith.net/PermaLink,guid,aacdb8ae-7baa-4423-a953-c18c1c7940ab.aspx" rel="noreferrer">Dustin Campbell's WeakEvent class</a>. Although blindly using Code I Found On The Internet&trade;  is generally a bad idea, it's a far better implementation than what I previously hacked together. It seems to work well so far, but in an effort to understand the code I came across the following:</p>
  
  <pre><code>public class WeakEventHandler&lt;T, E&gt; : IWeakEventHandler&lt;E&gt;
      where T : class
      where E : EventArgs
  {
      private delegate void OpenEventHandler(T @this, object sender, E e);
      ...
  </code></pre>
  
  <p>I'm used to declaring delegates types with just the <code>object sender</code> and <code>EventArgs args</code> arguments, so what does the <code>T @this</code> part achieve? Obviously it is declaring something of  <code>WeakEventHandler</code>'s <code>T</code> generic type but I've never seen <code>@this</code> before (and googling it is understandably hopeless).</p>