title: Is it possible to refactor this extension method?
body: <p>I have the following extension method:</p>
  
  <pre><code>public static void ThrowIfArgumentIsNull&lt;T&gt;(this T value, string argument) 
      where T : class
  {
      if (value == null)
      {
          throw new ArgumentNullException(argument);
      }
  }
  </code></pre>
  
  <p>and this is an example of its usage....</p>
  
  <pre><code>// Note: I've poorly named the argument, on purpose, for this question.
  public void Save(Category qwerty)
  {
      qwerty.ThrowIfArgumentIsNull("qwerty");
      ....
  }
  </code></pre>
  
  <p>works 100% fine.</p>
  
  <p>But, I don't like how I have to provide the name of the variable, just to help my exception message.</p>
  
  <p>I was wondering if it's possible to refactor the extension method, so it could be called like this...</p>
  
  <pre><code>qwerty.ThrowIfArgumentIsNull();
  </code></pre>
  
  <p>and it automatically figures out that the name of the variable is 'qwerty' and therefore uses that as the value for the ArgumentNullException.</p>
  
  <p>Possible? I'm assuming reflection could do this?</p>