函数的优先级
using N1;namespace N1
{
public static class E
{
public static void F(this object obj, int i) { }
public static void F(this object obj, string s) { }
}
}
class A { }
class B
{
public void F(int i) { }
}
class C
{
public void F(object obj) { }
}
class X
{
static void Test(A a, B b, C c) {
a.F(1); // E.F(object, int) 这里为什么是用E中的方法?
a.F("hello"); // E.F(object, string) 这里为什么是用E中的方法?
b.F(1); // B.F(int) 这里为什么是用E中的方法?
b.F("hello"); // E.F(object, string) 这里为什么是用B中的方法?
c.F(1); // C.F(object) 这里为什么是用C中的方法?
c.F("hello"); // C.F(object) 这里为什么是用C中的方法?
}
}