Esempio n. 1
0
        public static void Main()
        {
            MyClassWithDelegate.StringDelegate Writer, Logger, Transmitter;

            MyClassWithDelegate.StringDelegate MyMulticastDelegate;

            Writer      = new MyClassWithDelegate.StringDelegate(MyImplementingClass.WriteString);
            Logger      = new MyClassWithDelegate.StringDelegate(MyImplementingClass.LogString);
            Transmitter = new MyClassWithDelegate.StringDelegate(MyImplementingClass.TransmitString);

            Writer("String passed to Writer\n");

            Logger("String passed to Logger\n");

            Transmitter("String passed to Transmitter\n");

            Console.WriteLine("myMulticastSelegate = Writer + Logger");

            MyMulticastDelegate = Writer + Logger;

            MyMulticastDelegate("First string passed to Collector");

            Console.WriteLine("\nmyMulticastDelegate += Transmitter");

            MyMulticastDelegate += Transmitter;

            MyMulticastDelegate("Second string passed to Collector");

            Console.WriteLine("\nmyMuleicastDelegate -= Logger");

            MyMulticastDelegate -= Logger;

            MyMulticastDelegate("Third string passed to Collector");
        }
Esempio n. 2
0
        static void Main()
        {
            //definira tri delegata StringDelegate
            MyClassWithDelegate.StringDelegate Writer, Logger, Transmitter;

            //definira jos jednog delegata StringDelegate koji ce biti viseodredisni delegat
            MyClassWithDelegate.StringDelegate myMulticastDelegate;

            //instancira prva tri delegata proslijedjivanjem metoda za ucahurivanje
            Writer      = new MyClassWithDelegate.StringDelegate(MyImplementingClass.WriteString);
            Logger      = new MyClassWithDelegate.StringDelegate(MyImplementingClass.LogString);
            Transmitter = new MyClassWithDelegate.StringDelegate(MyImplementingClass.TransmitString);

            //poziva metodu delegata Writer
            Writer("String passed to Writer");
            //poziva metodu delgata Logger
            Logger("String passed to Logger");
            //poziva metodu delegata Transmitter
            Transmitter("String passed to Transmitter");

            //govori korisniku da ce te kobinirati dva delegata u jedan viseodredisni delegat
            Console.WriteLine("\nmyMulticastDelegate = Writer + Logger");

            //kombinira dva delegata a rezultat se pridruzuje myMulticast Delegete
            myMulticastDelegate = Writer + Logger;

            //poziva delegirane metode; bit ce pozvane dvije metode
            myMulticastDelegate("First string passed to Collector");

            //govori korisniku da cete dodati treci delegat viseodredisnom delegatu
            Console.WriteLine("\nmyMulticastDelegate += Transmitter");

            //dodaje treceg delegata
            myMulticastDelegate += Transmitter;

            //poziva tri delegirane metode
            myMulticastDelegate("Second string passed to Collector");

            //govori korisniku da cete ukloniti delegat za zapisivanje  u dnevnik
            Console.WriteLine("\nmyMulticastDelegate -= Logger");

            //brise delegat za zapisivanje u dnevnik
            myMulticastDelegate -= Logger;

            //poziva dvije preostale delegirane metode
            myMulticastDelegate("Third string passed to Collector");
        }
        public static void Main()
        {
            // Dinh nghia 3 String Delegate
            MyClassWithDelegate.StringDelegate Writer, Logger, Tranmitter;

            // Dinh nghia mot string delegate khac thuc hien milticasting
            MyClassWithDelegate.StringDelegate myMulticasting;

            // Tai the hien cua 3 delegate dau tine va truyen vao phuong thuc thuc thi
            Writer     = new MyClassWithDelegate.StringDelegate(MyImplementingClass.WriteString);
            Logger     = new MyClassWithDelegate.StringDelegate(MyImplementingClass.LogString);
            Tranmitter = new MyClassWithDelegate.StringDelegate(MyImplementingClass.TransmitString);

            // Goi phuong thuc delegate Writer
            Writer("String passed to Writer\n");
            // Goi phuong thuc delegate Logger
            Logger("String passed to Logger\n");
            // Goi phuong thuc delegate Transmitter
            Tranmitter("String passed to Transmitter\n");

            // Thong bao nguoi dung rang da ket hop 2 delegate vao trong mot multicast delegate
            Console.WriteLine("myMulticastDelegate = Writer + Logger");
            // Ket hop 2 delegate
            myMulticasting = Writer + Logger;
            // Goi phuong thuc delegate, hai phuong thuc se duoc thuc hien
            myMulticasting("First string passed to Collector");

            // Thong bao nguoi dung rang da them delegate thu 3 vao trong multicast delegate
            Console.WriteLine("\nmyMulticastDelegate += Transmitter");
            // them delegate thu 3 vao
            myMulticasting += Tranmitter;

            // goi thuc thi Multicast delegate, cung mot luc ba phuong thuc se cung duoc goi thuc hien
            myMulticasting("Second string passed to Collector");

            // Bao voi nguoi su dung rang xoa delegate Writer
            Console.WriteLine("\nmyMulticastDelegate -= Writer");
            // xoa delegate Writer
            myMulticasting -= Writer;
            // Goi lai delegate, luc nay chi con thuc hien hai phuong thuc
            myMulticasting("Third string passed to Collector");


            Console.ReadLine();
        }
Esempio n. 4
0
        public static void Main()
        {
            // define three StringDelegate objects
            MyClassWithDelegate.StringDelegate
                Writer, Logger, Transmitter;

            // define another StringDelegate
            // to act as the multicast delegate
            MyClassWithDelegate.StringDelegate
                myMulticastDelegate;

            // Instantiate the first three delegates,
            // passing in methods to encapsulate
            Writer = new MyClassWithDelegate.StringDelegate(
                MyImplementingClass.WriteString);
            Logger = new MyClassWithDelegate.StringDelegate(
                MyImplementingClass.LogString);
            Transmitter =
                new MyClassWithDelegate.StringDelegate(
                    MyImplementingClass.TransmitString);

            // Invoke the Writer delegate method
            Writer("String passed to Writer\n");

            // Invoke the Logger delegate method
            Logger("String passed to Logger\n");

            // Invoke the Transmitter delegate method
            Transmitter("String passed to Transmitter\n");

            // Tell the user you are about to combine
            // two delegates into the multicast delegate
            Console.WriteLine(
                "myMulticastDelegate = Writer + Logger");

            // combine the two delegates, the result is
            // assigned to myMulticast Delegate
            myMulticastDelegate = Writer + Logger;

            // Call the delegated methods, two methods
            // will be invoked
            myMulticastDelegate(
                "First string passed to Collector");

            // Tell the user you are about to add
            // a third delegate to the multicast
            Console.WriteLine(
                "\nmyMulticastDelegate += Transmitter");

            // add the third delegate
            myMulticastDelegate += Transmitter;

            // invoke the three delegated methods
            myMulticastDelegate(
                "Second string passed to Collector");

            // tell the user you are about to remove
            // the logger delegate
            Console.WriteLine(
                "\nmyMulticastDelegate -= Logger");

            // remove the logger delegate
            myMulticastDelegate -= Logger;

            // invoke the two remaining
            // delegated methods
            myMulticastDelegate(
                "Third string passed to Collector");
        }