Может ли кто-нибудь быть таким любезным и объяснить мне, почему этот код показывает Derived.DoWork(double)
. Я могу придумать несколько объяснений этому поведению, однако я хочу, чтобы кто-нибудь разъяснил это мне.
using System;
public class Base
{
public virtual void DoWork(int param) {
Console.WriteLine("Base.DoWork");
}
}
public class Derived : Base
{
public override void DoWork(int param) {
Console.WriteLine("Derived.DoWork(int)");
}
public void DoWork(double param) {
Console.WriteLine("Derived.DoWork(double)");
}
public static void Main() {
int val = 5;
Derived d = new Derived();
d.DoWork(val);
}
}