Table of Contents

    Simple Example of Event in C#

    
    using System;
    namespace ConsoleApp1
    {
        public class Magazine
        {
            // Define a delegate for the event
            public delegate void NewIssueEventHandler();
    
            // Define an event based on the delegate
            public event NewIssueEventHandler NewIssueReleased;
    
            // Method to publish a new issue
            public void PublishNewIssue()
            {
                Console.WriteLine("Magazine: Publishing new issue.");
                OnNewIssueReleased();
            }
    
            // Method to raise the event
            private void OnNewIssueReleased()
            {
                if (NewIssueReleased != null)
                {
                    NewIssueReleased();
                }
            }
        }
    
        public class Reader
        {
            private string name;
    
            public Reader(string name)
            {
                this.name = name;
            }
    
            // Event handler method
            public void ReceiveNewIssue()
            {
                Console.WriteLine($"{name} received the new issue.");
            }
        }
    
        public class Program
        {
            public static void Main(string[] args)
            {
                // Create an instance of the Magazine (Publisher)
                Magazine magazine = new Magazine();
    
                // Create instances of Readers (Subscribers)
                Reader reader1 = new Reader("Alice");
                Reader reader2 = new Reader("Bob");
    
                // Subscribe to the NewIssueReleased event
                magazine.NewIssueReleased += reader1.ReceiveNewIssue;
                magazine.NewIssueReleased += reader2.ReceiveNewIssue;
    
                // Publish new issues
                magazine.PublishNewIssue();
                magazine.PublishNewIssue();
            }
        }
    
    }