Why this is required for extension methods of super classes?
<p>Here is a sample code showing the oddity: (code fixed based on comment)</p>

<pre><code>public class C{}
public static class E {
  public static void Foo(this C o) { }
 }
class D:C {
  void test() {
//  Foo(); // will not compile
    this.Foo(); // compile ok
  }
}
</code></pre>

<p><strong>naturally in a real scenario class C would be a class i do not have access to its source code</strong></p>

<p>Anyone knows why this odd requirement to use the this keyword?</p>
