我知道魔法的前半部分。假设我有:
public class Foo {}
public class static FooExt
{
public static void M(this Foo f) {}
}
当我调用foo.M()编译器将其更改为FooExt.M(foo).
但是继承呢?例如:
public class Bar : Foo {}
public class static BarExt
{
public static void M(this Bar b) {}
}
当我调用bar.M()时,它会调用FooExt.M()orBarExt.M()吗?事实上我测试了它,答案是BarExt,但为什么呢?wow.M()如果我有另一个Wow : Foo但没有,当我打电话时会发生什么WowExt.M()?