title: Using extension methods from within the class they extend
body: <p>Consider this class:</p>
  
  <pre><code>public class Thing {
  
      public string Color { get; set; }
  
      public bool IsBlue() {
          return this.Color == "Blue";   // redundant "this"
      }
  
  }
  </code></pre>
  
  <p>I can omit the keyword <code>this</code> because <code>Color</code> is a property of <code>Thing</code>, and I'm coding within <code>Thing</code>.</p>
  
  <p>If I now create an extension method:</p>
  
  <pre><code>public static class ThingExtensions {
  
      public static bool TestForBlue(this Thing t) {
          return t.Color == "Blue";
      }
  
  }
  </code></pre>
  
  <p>I can now change my <code>IsBlue</code> method to this:</p>
  
  <pre><code>public class Thing {
  
      public string Color { get; set; }
  
      public bool IsBlue() {
          return this.TestForBlue();   // "this" is now required
      }
  }
  </code></pre>
  
  <p>However, I'm now required to include the <code>this</code> keyword.</p>
  
  <p>I can omit <code>this</code> when referencing properties and methods, so why can't I do this...?</p>
  
  <pre><code>public bool IsBlue() {
      return TestForBlue();
  }
  </code></pre>