Why do we have to explicitly specify "this" when invoking an extension method from within a method of a class being extended?
<pre><code>public class StoreController : Controller
{
    //
    // GET: /Store/

    public string Index()
    {
        // implicitly specified instance does not work
        //return GetMemberName();

        // must specify this explicitly
        return this.GetMemberName();

    }
}

public static class Utilities
{
    public static string GetMemberName(this Controller caller, [CallerMemberName] string memberName = "")
    {
        return caller.GetType().FullName + "." + memberName;
    }
}
</code></pre>

<p>Why do we have to explicitly specify <code>this</code> when invoking an extension method from within a method of a class being extended?</p>

<p>In my mental model, we usually can omit <code>this</code> such as when we initialize fields, for example.</p>
