Okay, ho una classe derivata che ha un sovraccarico in un metodo presente nella mia classe base. Chiamo ciò che penso possa corrispondere alla firma del metodo della classe base, ma invece viene chiamata l'implementazione delle classi derivate. (Il codice sottostante stampa sempre "MyDerived") Perché è questo?Compilatore che preleva il sovraccarico errato
public class MyBase
{
public void DoSomething(int a)
{
Console.WriteLine("MyBase");
}
}
public class MyDerived : MyBase
{
public void DoSomething(long a)
{
Console.WriteLine("MyDerived");
}
}
Main()
{
MyDerived d = new MyDerived();
d.DoSomething((int)5);
}
Io ho semplicemente copiato il codice in una nuova console app, e vengo "MyDerived" scritto fuori ogni volta. È questo il codice esatto che stai usando? –
Siamo spiacenti! Intendevo che stampasse MyDerived! Typo lo sto cambiando ora! –