可能重复:
为什么不能直接调用扩展方法?
让我们假设以下代码:
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
在应用于实例方法时意味着同样的事情。那么为什么在调用扩展方法时使用不同的行为呢?