FirstProcess と Second Process の 2 つのクラスがあります。
public class FirstProcess
{
public virtual void Calculate(int x, int y)
{
Console.WriteLine("First Process X :{0} and Y{1}", x, y);
}
}
public class SecondProcess : FirstProcess
{
public override void Calculate(int y, int x)
{
Console.WriteLine("Second Process X :{0} and Y :{1}", x, y);
}
}
以下のように計算メソッドを呼び出しました
var secondProcess = new SecondProcess();
var firstProcess = (FirstProcess) secondProcess;
secondProcess.Calculate(x: 1, y: 2);
firstProcess.Calculate(x: 1, y: 2);
出力
2 番目のプロセス X:1 および Y:2
2 番目のプロセス X:2 および Y:1
X=2 および Y =1 という予期しない結果が得られました。.Net はこのシナリオをどのように処理しますか? .net が名前付きパラメーターを優先するのはなぜですか?