"double in derived"を出力するメソッドが呼び出される理由は何でしょうか。私はC#の仕様でそれについて何の手がかりも見つけられませんでした。C#継承を使ったオーバーロードされたメソッドの呼び出し
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
私は7.4.2.2と7.4.2.3のルールを解読できますが、おそらく私よりもきれいですが、それはどこかにあります。 – spender
@spender、そこにいるかもしれませんが、それはうまく書かれていません:)。 – Silvermind