C# अकादमी · पाठ

डेलीगेट और इवेंट

जानें कि C# में डेलीगेट और इवेंट ऑब्जेक्ट के बीच संचार कैसे संभव बनाते हैं

पाठ 5, कुल 6 में से10 चरण

डेलीगेट और इवेंट, CoddyKit पर C# अकादमी का एक निःशुल्क पाठ है। यह 6 में से 5वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C# अकादमी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C# अकादमी पाठ्यक्रम में कुल 6 पाठ शामिल हैं।

delegates और इवेंट

अगले पाठ में आपका स्वागत है! इस पाठ में आप C# के delegates और इवेंट, उनके उद्देश्य और इवेंट-आधारित प्रोग्रामिंग को सक्षम बनाने में उनकी भूमिका के बारे में सीखेंगे। आइए, शुरू करते हैं!

डेलीगेट और इवेंट — चित्र 1

delegate क्या है?

delegate एक ऐसा प्रकार है जो किसी विधि के संदर्भ को दर्शाता है। यह विधियों को पैरामीटर के रूप में भेजने और गतिशील रूप से चलाने की सुविधा देता है।

मुख्य बिंदु: C# में इवेंट और वापसी-कॉल फ़ंक्शन लागू करने के लिए delegates आवश्यक हैं।

delegates परिभाषित करना और उनका उपयोग करना

delegate परिभाषित करने के लिए delegate कीवर्ड का उपयोग करें। उदाहरण:

using System;

class Program {
    // Define a delegate
    public delegate void MessageDelegate(string message);

    static void DisplayMessage(string message) {
        Console.WriteLine(message);
    }

    static void Main() {
        // Create a delegate instance
        MessageDelegate msg = DisplayMessage;

        // Invoke the delegate
        msg("Hello, Delegates!");
    }
}

मल्टीकास्ट delegates

एक delegate कई विधियों की ओर संकेत कर सकता है और सभी विधियाँ क्रम से चलाई जाएँगी। उदाहरण:

सुझाव: जब कई क्रियाएँ करनी हों, तब मल्टीकास्ट delegates का उपयोग करें।

using System;

class Program {
    public delegate void MessageDelegate(string message);

    static void ShowMessage(string message) {
        Console.WriteLine("Message: " + message);
    }

    static void LogMessage(string message) {
        Console.WriteLine("Log: " + message);
    }

    static void Main() {
        MessageDelegate msg = ShowMessage;
        msg += LogMessage; // Add another method

        msg("Hello, Multicast Delegates!"); // Both methods are invoked
    }
}

इवेंट क्या है?

इवेंट एक ऐसी व्यवस्था है जो किसी रुचिकर घटना के घटित होने पर एक क्लास को अन्य क्लास या ऑब्जेक्ट को सूचित करने देती है। इवेंट delegates पर आधारित होते हैं।

मुख्य बिंदु: इवेंट-आधारित प्रोग्रामिंग में इवेंट प्रकाशकों और सदस्यों के बीच ढीला युग्मन संभव बनाते हैं।

इवेंट परिभाषित करना और उनका उपयोग करना

इवेंट परिभाषित करने के लिए delegate प्रकार के साथ event कीवर्ड का उपयोग करें। उदाहरण:

मुख्य बिंदु: इवेंट आपको प्रतिक्रियाशील और इवेंट-आधारित प्रणालियाँ बनाने देते हैं।

using System;

class Publisher {
    public delegate void NotifyDelegate(string message);
    public event NotifyDelegate Notify; // Define an event

    public void RaiseEvent(string message) {
        Notify?.Invoke(message); // Invoke the event
    }
}

class Subscriber {
    public void OnNotify(string message) {
        Console.WriteLine("Subscriber received: " + message);
    }
}

class Program {
    static void Main() {
        Publisher pub = new Publisher();
        Subscriber sub = new Subscriber();

        pub.Notify += sub.OnNotify; // Subscribe to the event
        pub.RaiseEvent("Hello, Events!"); // Raise the event
    }
}

इवेंट से सदस्यता रद्द करना

सदस्य -= operator. का उपयोग करके इवेंट से अपनी सदस्यता रद्द कर सकते हैं। उदाहरण:

सुझाव: मेमोरी लीक से बचने के लिए इवेंट से अपनी सदस्यता हमेशा रद्द करें।

using System;

class Publisher {
    public delegate void NotifyDelegate(string message);
    public event NotifyDelegate Notify;

    public void RaiseEvent(string message) {
        Notify?.Invoke(message);
    }
}

class Subscriber {
    public void OnNotify(string message) {
        Console.WriteLine("Subscriber received: " + message);
    }
}

class Program {
    static void Main() {
        Publisher pub = new Publisher();
        Subscriber sub = new Subscriber();

        pub.Notify += sub.OnNotify; // Subscribe
        pub.RaiseEvent("First Message");

        pub.Notify -= sub.OnNotify; // Unsubscribe
        pub.RaiseEvent("Second Message"); // No output, as subscriber is removed
    }
}

अभ्यास चुनौती

अंकगणितीय संक्रियाओं के लिए CalculationDelegate नाम का एक delegate और OnCalculate नाम का एक इवेंट बनाएँ। ऐसा प्रोग्राम लिखें जो इवेंट उत्पन्न करे और गणनाएँ करे। उदाहरण:

using System;

class Calculator {
    public delegate void CalculationDelegate(double result);
    public event CalculationDelegate OnCalculate;

    public void Add(double a, double b) {
        double result = a + b;
        OnCalculate?.Invoke(result);
    }
}

class Program {
    static void Main() {
        Calculator calc = new Calculator();

        // Subscribe to the event
        calc.OnCalculate += result => Console.WriteLine("Result: " + result);

        calc.Add(5, 3); // Outputs: Result: 8
    }
}

बहुत बढ़िया!

बधाई हो! आपने गतिशील और इवेंट-आधारित प्रोग्राम बनाने के लिए delegates और इवेंट का उपयोग करना सीख लिया है। अगले पाठ में हम सूचियों, डिक्शनरी और कतारों जैसे संग्रहों के साथ काम करना सीखेंगे। आइए, प्रोग्राम लिखना जारी रखें!

डेलीगेट और इवेंट — चित्र 10
शुरुआत निःशुल्क

एआई शिक्षक के साथ C# सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
93
पाठ
346

अक्सर पूछे जाने वाले प्रश्न

क्या “डेलीगेट और इवेंट” पाठ निःशुल्क है?

हाँ—“डेलीगेट और इवेंट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C# अकादमी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C# अकादमी पाठ्यक्रम में कुल 6 पाठ शामिल हैं।

“डेलीगेट और इवेंट” में मैं क्या सीखूँगा?

जानें कि C# में डेलीगेट और इवेंट ऑब्जेक्ट के बीच संचार कैसे संभव बनाते हैं आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C# अकादमी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C# अकादमी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C# अकादमी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 6 में से 5वाँ पाठ है।

“डेलीगेट और इवेंट” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C# अकादमी पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C# अकादमी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. इंटरफ़ेस का परिचय
  2. एब्स्ट्रैक्ट क्लास
  3. स्टैटिक सदस्य और विधियाँ
  4. एनम और स्ट्रक्चर का परिचय
  5. डेलीगेट और इवेंट
  6. कलेक्शन के साथ काम करना: सूचियाँ, शब्दकोश और कतारें
← C# अकादमी पर वापस जाएँ