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

सी # में किसी ईवेंट की सदस्यता कैसे लें और क्या हमारे पास सी # में एक ईवेंट में एकाधिक ग्राहक हो सकते हैं?

ईवेंट किसी वर्ग या वस्तु को किसी रुचिकर घटना के होने पर अन्य वर्गों या वस्तुओं को सूचित करने में सक्षम बनाते हैं।

ईवेंट को उठाने वाले वर्ग को प्रकाशक कहा जाता है और ईवेंट को संभालने वाले वर्ग को सब्सक्राइबर कहा जाता है।

इवेंट में

एक ईवेंट में कई ग्राहक हो सकते हैं। एक ग्राहक एक से अधिक प्रकाशकों के कई ईवेंट को हैंडल कर सकता है।

ऐसे इवेंट जिनके सब्सक्राइबर नहीं होते हैं, उन्हें कभी नहीं उठाया जाता है।

प्रकाशक यह निर्धारित करता है कि कोई ईवेंट कब उठाया जाए; ग्राहक निर्धारित करते हैं कि घटना के जवाब में क्या कार्रवाई की जाती है।

उदाहरण

class Program {
   static void Main() {
      var video = new MP4() { Title = "Eminem" };
      var videoEncoder = new MP4EncoderNew();
      var mailService = new MailService();
      var messageService = new MessageService();
      videoEncoder.mp4Encoded += mailService.onVideoEncoded;
      videoEncoder.mp4Encoded += messageService.onVideoEncoded;
      videoEncoder.Encode(video);
      Console.ReadKey();
   }
}
public class MP4 {
   public string Title { get; set; }
}
public class MP4Args : EventArgs {
   public MP4 mp4 { get; set; }
}
public class MP4EncoderNew {
   public EventHandler mp4Encoded;
   public void Encode(MP4 video) {
      Console.WriteLine("Encoding MP4");
      Thread.Sleep(3000);
      OnVideoEncoded(video);
   }
   protected void OnVideoEncoded(MP4 video) {
      if (mp4Encoded != null) {
         mp4Encoded(this, new MP4Args() { mp4 = video });
      }
   }
}
//Subscriber 1
public class MailService {
   public void onVideoEncoded(object source, MP4Args e) {
      Console.WriteLine("Mail Service:,Sending an email {0}", e.mp4.Title);
   }
}
//Subscriber 2
public class MessageService {
   public void onVideoEncoded(object source, MP4Args e) {
      Console.WriteLine("Message Service:,Sending an Message {0}", e.mp4.Title);
   }
}

आउटपुट

Encoding MP4
Mail Service:,Sending an email Eminem
Message Service:,Sending an Message Eminem

  1. टिंकर में एक बटन में छवि और टेक्स्ट कैसे प्राप्त करें?

    हम PhotoImage(image location) . का उपयोग करके टिंकर एप्लिकेशन में छवियों को लोड कर सकते हैं फ़ंक्शन, जो छवि स्थान को पैरामीटर के रूप में लेता है और विंडो ऑब्जेक्ट पर छवि प्रदर्शित करता है। हालाँकि, जब हम बटन में एक छवि जोड़ने का प्रयास करते हैं, तो यह आमतौर पर बटन टेक्स्ट को छुपाते समय बटन पर दिखाई

  1. Matplotlib और Python का उपयोग करके एक ही आकृति में एकाधिक भूखंडों को कैसे प्लॉट किया जा सकता है?

    Matplotlib एक लोकप्रिय पायथन पैकेज है जिसका उपयोग डेटा विज़ुअलाइज़ेशन के लिए किया जाता है। डेटा को विज़ुअलाइज़ करना एक महत्वपूर्ण कदम है क्योंकि यह यह समझने में मदद करता है कि वास्तव में संख्याओं को देखे बिना और जटिल गणना किए बिना डेटा में क्या हो रहा है। यह दर्शकों को मात्रात्मक अंतर्दृष्टि को प्

  1. एक से अधिक Gmail खाते कैसे प्रबंधित करें और एक ही स्थान पर ईमेल जांचें

    हम में से कई लोगों के लिए, जीमेल हमारे पूरे ऑनलाइन अनुभव को जोड़ने का आधार बिंदु है। यूनिवर्सल ईमेल प्रदाता हमारे सिंगल साइन-ऑन (एसएसओ) एक्सेस का प्रबंधन करता है, हमें महत्वपूर्ण अलर्ट के बारे में सूचित करता है, टीम मीटिंग ऐप्स के साथ समन्वयित करता है, और आसानी से कार्य डोमेन से जुड़ सकता है। इस तरह