Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में मल्टीकास्ट डेलीगेट्स (Multicast Delegates)


परिचय

मल्टीकास्ट डेलीगेट एक डेलीगेट इंस्टेंस है जो एकाधिक मेथड्स को संदर्भित करता है। += से मेथड जोड़ें, -= से हटाएं। आव्हान पर सभी मेथड क्रमिक रूप से चलते हैं।

उदाहरण

using System;

delegate void MyDelegate(int val1, int val2);

public class Demo
{
    public static void CalAdd(int val1, int val2)
    {
        Console.WriteLine("{0} + {1} = {2}", val1, val2, val1 + val2);
    }

    public static void CalSub(int val1, int val2)
    {
        Console.WriteLine("{0} - {1} = {2}", val1, val2, val1 - val2);
    }
}

public class Program
{
    static void Main()
    {
        MyDelegate d = new MyDelegate(Demo.CalAdd);
        d += new MyDelegate(Demo.CalSub);  // दूसरा मेथड जोड़ें

        d(45, 70); // दोनों चलेंगे: Add फिर Sub

        d -= new MyDelegate(Demo.CalAdd);  // पहला हटाएं
        d(95, 70); // केवल Sub चलेगा

        d += new MyDelegate(Demo.CalSub);  // Sub फिर से जोड़ें (डुप्लिकेट)
        d(88, 6);  // Sub दो बार चलेगा

        d -= new MyDelegate(Demo.CalAdd);  // कोई प्रभाव नहीं (पहले ही हटाया)
        d(40, 20); // Sub एक बार चलेगा

        Console.Read();
    }
}

महत्वपूर्ण व्यवहार

  • रिटर्न टाइप void होना चाहिए (अन्यथा केवल अंतिम मेथड का रिटर्न मान मिलता है)।
  • अपवाद किसी मेथड में फेंका जाए तो शेष मेथड नहीं चलते।
  • डेलीगेट इम्यूटेबल हैं; +=/-= नया डेलीगेट इंस्टेंस बनाते हैं।
  • इवेंट्स (event कीवर्ड) मल्टीकास्ट डेलीगेट का सुरक्षित रैपर हैं।
  1. - C# में यूजर-डिफाइंड एक्सेप्शन्स क्या हैं

    किसी अन्य प्रोग्रामिंग भाषा की तरह, C# में आप आसानी से यूजर-डिफाइंड एक्सेप्शन बना सकते हैं। यूजर-डिफाइंड एक्सेप्शन क्लासेस Exception क्लास से डेराइव्ड होती हैं। कस्टम एक्सेप्शन्स को यूजर-डिफाइंड एक्सेप्शन्स कहा जाता है। नीचे दिए गए उदाहरण में, बनाया गया एक्सेप्शन बिल्ट-इन एक्सेप्शन नहीं है; यह एक कस

  1. - C# में नेमस्पेसेस क्या हैं

    नेमस्पेस नामों के एक सेट को दूसरे से अलग रखने का एक तरीका प्रदान करने के लिए है। नेमस्पेस डेफिनिशन namespace कीवर्ड से शुरू होती है जिसके बाद नेमस्पेस नाम आता है - namespace namespace_name { // code declarations } नेमस्पेस डिफाइन करें - namespace namespace_name { // code declarations } निम्न

  1. - C# में डेलीगेट्स क्या हैं?

    C# में डेलीगेट मेथड का रेफरेंस होता है। एक डेलीगेट एक रेफरेंस टाइप वेरिएबल है जो एक मेथड का रेफरेंस रखता है। रेफरेंस को रनटाइम पर बदला जा सकता है।डेलीगेट्स विशेष रूप से इवेंट्स और कॉल-बैक मेथड्स को लागू करने के लिए उपयोग किए जाते हैं। सभी डेलीगेट्स अप्रत्यक्ष रूप से System.Delegate क्लास से डेराइव्ड