ইভেন্টগুলি একটি ক্লাস বা অবজেক্টকে অন্য ক্লাস বা অবজেক্টগুলিকে জানাতে সক্ষম করে যখন আগ্রহের কিছু ঘটে৷
যে ক্লাসটি ইভেন্টটি উত্থাপন করে তাকে বলা হয় প্রকাশক এবং যে শ্রেণীগুলি ইভেন্ট পরিচালনা করে তাদের বলা হয় গ্রাহক৷
ইভেন্টে
একটি ইভেন্ট একাধিক গ্রাহক থাকতে পারে. একজন গ্রাহক একাধিক প্রকাশকের একাধিক ইভেন্ট পরিচালনা করতে পারেন।
কোনো গ্রাহক নেই এমন ইভেন্টগুলি কখনই উত্থাপিত হয় না৷
৷প্রকাশক নির্ধারণ করেন যখন একটি ঘটনা উত্থাপিত হয়; ইভেন্টের প্রতিক্রিয়া হিসাবে কি ব্যবস্থা নেওয়া হবে তা গ্রাহকরা নির্ধারণ করে।
উদাহরণ
<প্রি>ক্লাস প্রোগ্রাম { স্ট্যাটিক ভ্যাইড মেইন() { var ভিডিও =নতুন MP4() { শিরোনাম ="এমিনেম" }; var videoEncoder =নতুন MP4EncoderNew(); var mailService =নতুন MailService(); var messageService =new MessageService(); videoEncoder.mp4Encoded +=mailService.onVideoEncoded; videoEncoder.mp4Encoded +=messageService.onVideoEncoded; videoEncoder.Encode(ভিডিও); Console.ReadKey(); }}পাবলিক ক্লাস MP4 { পাবলিক স্ট্রিং শিরোনাম { পেতে; সেট }} পাবলিক ক্লাস MP4Args :EventArgs { পাবলিক MP4 mp4 { পান; সেট }}পাবলিক ক্লাস MP4EncoderNew { public EventHandler mp4Encoded; সর্বজনীন অকার্যকর এনকোড(MP4 ভিডিও) { Console.WriteLine("এনকোডিং MP4"); থ্রেড।স্লিপ(3000); OnVideoEncoded(ভিডিও); } সুরক্ষিত শূন্য OnVideoEncoded(MP4 ভিডিও) { যদি (mp4Encoded !=null) { mp4Encoded(এই, নতুন MP4Args() { mp4 =ভিডিও }); } }}//সাবস্ক্রাইবার 1পাবলিক ক্লাস মেলসার্ভিস { পাবলিক ভ্যাইড অনভিডিওএনকোডেড(অবজেক্ট সোর্স, MP4আর্গস ই) { কনসোল.WriteLine("মেল পরিষেবা:,একটি ইমেল পাঠানো হচ্ছে {0}", e.mp4.Title); }}//সাবস্ক্রাইবার 2পাবলিক ক্লাস মেসেজসার্ভিস { পাবলিক void onVideoEncoded(অবজেক্ট সোর্স, MP4Args e) { Console.WriteLine("Message Service:,Sending an Message {0}", e.mp4.Title); }}আউটপুট
MP4Mail পরিষেবা এনকোডিং:,একটি ইমেল পাঠানো EminemMessage Service:,Message Eminem পাঠানো