为什么用对象参数而不是int参数调用方法

时间:2018-09-28 06:19:19

标签: c#

我不理解这种奇怪的行为。我有一个接受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的方法?

https://www.ideone.com/OToXWShttps://www.ideone.com/BIugxO

0 个答案:

没有答案