我有兩個類FirstProcess和第二處理C#:使用可選參數&命名參數重寫的方法:意想不到的結果
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優先考慮命名參數?
+1我剛剛通過這段代碼,真讓我困惑。感謝您的澄清。 –
真棒解釋..感謝很多jon – JEMI