让我们假设以下代码:
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
在应用于实例方法时的含义相同。
那么为什么在调用扩展方法时会使用不同的行为呢?