मैं दो वर्गों FirstProcess और दूसरा प्रक्रियासी #: वैकल्पिक पैरामीटर और नामित मानकों के साथ अधिभावी विधि: अनपेक्षित परिणाम
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);
आउटपुट
दूसरी प्रक्रिया एक्स: 1 और वाई: 2
दूसरी प्रक्रिया एक्स: 2 और वाई: 1
मुझे अप्रत्याशित परिणाम मिला कि एक्स = 2 और वाई = 1. कैसे .Net इस परिदृश्य को संभालते हैं? क्यों .net नामित पैरामीटर को प्राथमिकता देते हैं?
+1 मैं अभी इस कोड के माध्यम से कदम उठा रहा था, वास्तव में मुझे भ्रमित कर रहा था। स्पष्टीकरण के लिए धन्यवाद। –
भयानक स्पष्टीकरण .. बहुत जॉन धन्यवाद – JEMI