[Maybe this will clear it up.][1]> On instance methods, 'this' is implicitly passed to each method transparently, so you can access all the members it provides.> Extension methods are static. By calling Method() rather than this.Method() or Method(this), you're not telling the compiler what to pass to the method.> You might say 'why doesn't it just realise what the calling object is and pass that as a parameter?'> The answer is that extension methods are static and can be called from a static context, where there is no 'this'.
[1]: http://stackoverflow.com/questions/3510964/why-is-the-this-keyword-required-to-call-an-extension-method-from-within-the-e
↧