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"); }
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(); }
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"); }