为什么总是这段代码将调用对象参数类型重载而不是int?

时间:2019-10-19 11:04:37

标签: c# overloading

即使我像这样public void Func(object o)用int调用下面的代码,为什么下面的代码也会调用int i = 10;

是因为所有类型都派生自System.Object吗?

using System;
public class Program
{
    static void Main(string[] args)
    {
        Derived d = new Derived();
        object 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)");
    }
}

请让我知道为什么它是正确的。

0 个答案:

没有答案