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

C# में Delegates और Events के बीच अंतर


इस पोस्ट में, हम C# में delegates और events के बीच अंतर को समझेंगे।

Delegate

  • 'delegate' कीवर्ड का उपयोग करके घोषित किया जा सकता है।

  • यह एक फंक्शन पॉइंटर है।

  • यह रनटाइम के दौरान एक या अधिक मेथड्स का संदर्भ रखता है।

  • यह एक स्वतंत्र कीवर्ड है।

  • यह events पर निर्भर नहीं करता।

  • इसमें Combine() और Remove() मेथड्स होते हैं जो इनवोकेशन की सूची में मेथड्स जोड़ने में मदद करते हैं।

  • इसे एक मेथड में पैरामीटर के रूप में पास किया जा सकता है।

  • '=' ऑपरेटर का उपयोग एक सिंगल मेथड असाइन करने के लिए किया जा सकता है।

  • '+=' ऑपरेटर का उपयोग एक delegate को एकाधिक मेथड्स असाइन करने के लिए किया जा सकता है।

Event

  • 'event' कीवर्ड का उपयोग करके घोषित किया जा सकता है।

  • इसे एक नोटिफिकेशन मैकेनिज्म के रूप में परिभाषित किया जा सकता है जो delegates पर निर्भर करता है।

  • यह delegate पर निर्भर करता है।

  • इसे delegates के बिना नहीं बनाया जा सकता।

  • इसे delegate इंस्टेंस के चारों ओर एक रैपर के रूप में समझा जा सकता है।

  • यह delegate के उपयोगकर्ताओं को delegate और इसकी इनवोकेशन सूची को रीसेट करने से रोकने में मदद करता है।

  • यह इनवोकेशन की सूची से केवल टारगेट जोड़ने या हटाने की अनुमति देता है।

  • 'EventInfo' क्लास events का निरीक्षण करता है और इवेंट हैंडलर्स को बाइंड करने में मदद करता है।

  • इन हैंडलर्स में AddEventHandler() और RemoveEventHandler() जैसे मेथड्स शामिल हैं, जो क्रमशः इनवोकेशन की सूची में मेथड्स जोड़ने और हटाने में मदद करते हैं।

  • एक event को उठाया जा सकता है, लेकिन इसे एक मेथड में पैरामीटर के रूप में पास नहीं किया जा सकता।

  • '=' ऑपरेटर का उपयोग events के साथ नहीं किया जा सकता।

  • '+=' और '-=' ऑपरेटर्स का उपयोग event के साथ किया जा सकता है जो क्रमशः इवेंट हैंडलर्स को जोड़ते या हटाते हैं।

  • ये मेथड्स आंतरिक रूप से AddEventHandler और RemoveEventHandler जैसे मेथड्स को कॉल करेंगे।

  1. - Go और Java में अंतर

    GoGo एक प्रक्रियात्मक प्रोग्रामिंग भाषा है। प्रोग्राम पैकेज का उपयोग करके असेंबल किए जाते हैं। यह डायनामिक भाषाओं के समान पैटर्न को अपनाने वाले वातावरण का समर्थन करता है।JavaJava एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषा है। Java काफी तेज, विश्वसनीय और सुरक्षित है। यह सबसे व्यापक रूप से उपयोग की जाने व

  1. - Java में Constructors और Methods में अंतर

    कंस्ट्रक्टर्स ऑब्जेक्ट्स को इनिशियलाइज़ करने के लिए उपयोग किए जाने वाले विशेष मेथड्स हैं जबकि मेथड्स का उपयोग कुछ स्टेटमेंट्स को निष्पादित करने के लिए किया जाता है। कंस्ट्रक्टर्स और मेथड्स के बीच महत्वपूर्ण अंतर निम्नलिखित हैं।क्र. सं.मुख्य बिंदुConstructorsMethods1उद्देश्यकंस्ट्रक्टर का उपयोग ऑब्जे

  1. - एब्स्ट्रैक्ट क्लास और इंटरफेस में अंतर

    एक एब्स्ट्रैक्ट क्लास में इंस्टेंस मेथड्स हो सकते हैं जो डिफ़ॉल्ट व्यवहार लागू करते हैं। एक इंटरफेस केवल कॉन्स्टेंट्स और इंस्टेंस मेथड्स घोषित कर सकता है, लेकिन डिफ़ॉल्ट व्यवहार लागू नहीं कर सकता और सभी मेथड्स अंतर्निहित रूप से एब्स्ट्रैक्ट होते हैं। एक इंटरफेस के सभी मेंबर्स पब्लिक होते हैं और कोई