重複の可能性:
拡張メソッドを直接呼び出せないのはなぜですか?
次のコードを想定します。
public static class MyExtensions
{
public static void SayHello(this Foo self)
{}
}
public class Foo
{
this.SayHello(); //this works
SayHello(); //this does not compile
}
この背後にある理由に興味があるだけですが、拡張メソッドを暗黙的に呼び出すことができないのはなぜthis
ですか?
this.SayHello()
SayHello
インスタンスメソッドに適用された場合、同じことを意味します。では、拡張メソッドを呼び出すときに異なる動作を使用するのはなぜでしょうか?