खोज…


टिप्पणियों

इसमें C # का कोई अंतर्निहित उत्तर नहीं है - तथाकथित - आवश्यकता। फिर भी इस जरूरत को पूरा करने के लिए वर्कआॅर्डर हैं।

जिस कारण से मैं "तथाकथित" के रूप में आवश्यकता को पूरा करता हूं, यह है कि हमें अच्छे प्रोग्रामिंग प्रिंसिपल का उल्लंघन करने पर लौटने के लिए केवल 2 या 2 से अधिक मान वाले तरीकों की आवश्यकता होती है। खासकर सिंगल रिस्पॉन्सिबिलिटी प्रिंसिपल

इसलिए, यह बेहतर होगा कि जब हमें 2 या अधिक मानों को लौटाने वाले कार्यों की आवश्यकता हो, और अपने डिजाइन में सुधार करें।

"अनाम वस्तु" + "गतिशील कीवर्ड" समाधान

आप अपने फ़ंक्शन से एक अनाम ऑब्जेक्ट वापस कर सकते हैं

public static object FunctionWithUnknowReturnValues ()
{
    /// anonymous object
    return new { a = 1, b = 2 };
}

और परिणाम को एक डायनामिक ऑब्जेक्ट पर असाइन करें और उसमें मान पढ़ें।

/// dynamic object
dynamic x = FunctionWithUnknowReturnValues();

Console.WriteLine(x.a);
Console.WriteLine(x.b);

टपल समाधान

आप Tuple<string, MyClass> रूप में दो टेम्प्लेट मापदंडों के साथ अपने फ़ंक्शन से Tuple क्लास का एक उदाहरण लौटा सकते हैं:

public Tuple<string, MyClass> FunctionWith2ReturnValues ()
{
    return Tuple.Create("abc", new MyClass());
}

और नीचे दिए गए मानों को पढ़ें:

Console.WriteLine(x.Item1);
Console.WriteLine(x.Item2);

रेफरी और आउट पैरामीटर

संदर्भ के रूप में तर्क को पारित करने के लिए ref कीवर्ड का उपयोग किया जाता है। out ref के समान ही होगा, लेकिन इसे फ़ंक्शन को कॉल करने से पहले कॉलर द्वारा निर्दिष्ट मान की आवश्यकता नहीं होती है।

Ref पैरामीटर : -अगर आप एक वेरिएबल को रिफ पैरामीटर के रूप में पास करना चाहते हैं तो आपको इसे रीमिक्स करने के लिए इसे शुरू करने से पहले इसे पैरामीटर के रूप में बदलना होगा।

आउट पैरामीटर: - यदि आप किसी पैरामीटर को आउट पैरामीटर के रूप में पारित करना चाहते हैं, तो आपको इसे पैरामीटर से बाहर करने से पहले इसे प्रारंभ करने की आवश्यकता नहीं है।

static void Main(string[] args)
{
    int a = 2;
    int b = 3;
    int add = 0;
    int mult= 0;
    AddOrMult(a, b, ref add, ref mult); //AddOrMult(a, b, out add, out mult);
    Console.WriteLine(add); //5
    Console.WriteLine(mult); //6
}

private static void AddOrMult(int a, int b, ref int add, ref int mult) //AddOrMult(int a, int b, out int add, out int mult)
{
    add = a + b;
    mult = a * b;
}


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow