私は魔法の前半の部分を知っていました。私が持っていると仮定します:
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()かBarExt.M()?実際、私はそれをテストし、答えはですBarExtが、なぜですか?wow.M()別のものがあるWow : Fooがない場合、電話するとどうなりWowExt.M()ますか?