मैं निम्नलिखित कोड है:तरीके मूल्य और संदर्भ पैरामीटर प्रकार के साथ अधिक भार
class Calculator
{
public int Sum(int x, int y)
{
return x + y;
}
public int Sum(out int x, out int y)
{
x = y = 10;
return x + y;
}
}
class Program
{
static void Main(string[] args)
{
int x = 10, y = 20;
Calculator calculator = new Calculator();
Console.WriteLine (calculator.Sum (x , y));
Console.WriteLine (calculator.Sum (out x , out y));
}
}
इस कोड के बावजूद कि तरीकों हस्ताक्षर केवल differenciated out
कीवर्ड हो रहे हैं अच्छी तरह से काम करते हैं।
लेकिन निम्नलिखित कोड काम नहीं किया:
class Calculator
{
public int Sum(ref int x, ref int y)
{
return x + y;
}
public int Sum(out int x, out int y)
{
x = y = 10;
return x + y;
}
}
class Program
{
static void Main(string[] args)
{
int x = 10, y = 20;
Calculator calculator = new Calculator();
Console.WriteLine (calculator.Sum (ref x , ref y));
Console.WriteLine (calculator.Sum (out x , out y));
}
}
क्यों इस कोड काम नहीं किया? क्या विधियों के हस्ताक्षर के भाग और बाहर के कीवर्ड हैं?
'ref' और' out' लगभग एक ही चीज़ के लिए संकलित, इसलिए सी # आपको ऐसा करने की अनुमति नहीं देता है। –