public static void Main(string[] args)
        {
            Publisher publisher = new Publisher();

            SendViaMobile send2Mobile = new SendViaMobile("416 1234567");

            SendViaMobile send2Mobile2 = new SendViaMobile("416 1239999");

            SendViaMobile send2Mobile3 = new SendViaMobile("647 123 4567");

            SendViaEmail send2Email = new SendViaEmail("*****@*****.**");

            SendViaEmail send3Email = new SendViaEmail("*****@*****.**");

            SendViaEmail sub2 = new SendViaEmail("*****@*****.**");

            //Subscribing for Mobile notifications
            sub2.Subscribe(publisher);
            send2Mobile.Subscribe(publisher);

            send2Mobile2.Subscribe(publisher);

            send2Mobile3.Subscribe(publisher);

            send3Email.Subscribe(publisher);

            //Emails are not subscribed so it wont receive notifications via Email
            send2Email.Subscribe(publisher);

            //Invoking the delegate Only Mobile will receive notifications.
            publisher.PublishMessage("Hello You Have New Notifications");

            Console.WriteLine();

            send2Mobile3.UnSubscribe(publisher);
            send2Email.UnSubscribe(publisher);
            publisher.PublishMessage("Hello You Have More New Notifications");

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Publisher publisher = new Publisher();

            SendViaMobile send2Mobile = new SendViaMobile("647 1234567");
            SendViaEmail  send2Email  = new SendViaEmail("*****@*****.**");

            send2Mobile.Subscribe(publisher);
            send2Email.Subscribe(publisher);

            publisher.PublishMessage("Hello!!! You have new notifications");
            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Publisher publisher = new Publisher();

            SendViaMobile send2Mobile = new SendViaMobile("647 1234567");
            SendViaEmail send2Email = new SendViaEmail("*****@*****.**");

            send2Mobile.Subscribe(publisher);
            send2Email.Subscribe(publisher);

            publisher.PublishMessage("Hello!!! You have new notifications");
            Console.ReadKey();


        }
        public static void ExecuteMain()
        {
            /* Example obj = new Example();
             * // 2. Instantiation
             * MyDelagate multicastdel = new MyDelagate(obj.Sum);
             * multicastdel += new MyDelagate(obj.Difference);
             *
             * // 3. Invocation
             * multicastdel(50, 20);*/

            Publisher publisher = new Publisher();

            SendViaEmail  SE = new SendViaEmail();
            SendViaMobile SM = new SendViaMobile();

            publisher.publishmsg += SE.sendEmail;
            publisher.publishmsg += SM.sendMessage;

            publisher.PublishMessage(" you have new notifications");
        }