我不理解这种奇怪的行为。我有一个接受int的重写方法,并接受一个派生类中的对象类型的方法。如果我传递一个int,则将调用具有对象类型的方法。
using System;
public class Program
{
static void Main(string[] args)
{
Derived d = new Derived();
int i = 10;
d.Func(i);
Console.ReadKey();
}
}
public class Base
{
public virtual void Func(int x)
{
Console.WriteLine("Base.Func(int)");
}
}
public class Derived : Base
{
public override void Func(int x)
{
Console.WriteLine("Derived.Func(int)");
}
public void Func(object o)
{
Console.WriteLine("Derived.Func(object)");
}
}
为什么不调用接受int的方法?