我有两个类 FirstProcess 和 Second Process
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);
输出
第二个过程 X : 1 和 Y:2
第二个过程 X : 2 和 Y:1
我得到了 X=2 和 Y =1 的意外结果。.Net 如何处理这种情况?为什么.net优先考虑命名参数?