Ich frage mich, was der Grund für den Aufruf der Methode ist, die "double in derived" ausgibt. Ich habe in der C# -Spezifikation keinen Hinweis darauf gefunden.C# Überladene Methode Aufruf mit Vererbung
public class A
{
public virtual void Print(int x)
{
Console.WriteLine("int in base");
}
}
public class B : A
{
public override void Print(int x)
{
Console.WriteLine("int in derived");
}
public void Print(double x)
{
Console.WriteLine("double in derived");
}
}
B bb = new B();
bb.Print(2);
http://msdn.microsoft.com/en-us/library/aa691338%28v=vs.71%29.aspx – spender
Ich kann Sie die Regeln von 7.4.2.2 und 7.4.2.3 entschlüsseln, Sie sind wahrscheinlich Klüger als ich, aber es wird irgendwo da sein. – spender
@spender, Es könnte drin sein, aber es ist schlecht geschrieben :). – Silvermind