namespace test
{
class Program
{
static void Main(string[] args)
{
Derived obj = new Derived();
int i = 10;
obj.Foo(i);
Console.ReadLine();
}
}
class Base
{
public virtual void Foo(int i)
{
Console.WriteLine("Base:Foo()");
}
}
class Derived:Base
{
public override void Foo(int i)
{
Console.WriteLine("Foo(int)");
}
public void Foo(object i)
{
Console.WriteLine("Foo(object)");
}
}
}
输出应该美孚(INT),但输出来作为美孚(对象),请帮助我理解之探源输出为什么方法重载在这个C#程序中不起作用?根据我的程序
“编译器更喜欢首先在派生类中声明的方法,这是对象重载。更多信息:http://ericlippert.com/2013/12/23/closer-is-better/#more-1806 –