/// <summary> /// A feladat ugyanaz, mint eddig, csak most esemenyekkel /// /// Az allapot valtozasat a megfigyelt kozolheti DTO-n keresztul, /// de a teljes megfigyelt peldanyt elkuldjuk a parameterlistaban, igy /// a megfigyelt mindenhez hozzafer /// </summary> /// <param name="args"></param> static void Main(string[] args) { var f = new FelhasznaloiFelulet(); var n = new NaplozoModul(); var b = new BetoltoProgram(); //Feliratkozasok //a) //b.AllapotValtozasTortent += B_AllapotValtozasTortent; //b) Anonymus delegate-tel //Ha ezzel a lambdas megoldassal iratkozok fel fuggvenyeket, akkor olyan fgv szignaturat is megadhatunk, ami elter a listaetol. //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(o); }; // Csak egy parameter van. //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(o, e.Allapot); }; //Nem az egesz osztaly, hanem csak az Allapot property-t adom at b.AllapotValtozasTortent += f.Uzenet; b.AllapotValtozasTortent += n.Uzenet; b.Start(); b.AllapotValtozasTortent -= f.Uzenet; b.AllapotValtozasTortent -= n.Uzenet; }
/// <summary> /// A feladat ugyanaz, mint eddig /// csak most megnézzük eseményekkel /// /// Az állapot változását a megfigyelt közölheti DTOn keresztül, /// de a teljes megfigyelt példány utazik a paraméterlistán, így /// a megfigyelő mindenhez hozzá is fér. /// </summary> /// <param name="args"></param> static void Main(string[] args) { var b = new BetoltoProgram(); var f = new FelhasznaloiFelulet(); var n = new NaplozoModul(); //feliratkozások //Átlagos eseményvezérlő: nekünk most nem ez kell. //b.AllapotValtozasTortent += B_AllapotValtozasTortent; //anonymous delegat-tel //Így is lehetne, akkor nálam van a lehetőség, hogy össze nem //kapcsolható függvényekkel is tudok játszani //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(e); }; //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(e.Allapot); }; //vagy csak simán megismétlem a hívást //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { f.Uzenet(o, e); }; //b.AllapotValtozasTortent += (object o, AllapotUzenet e) => { n.Uzenet(o, e); }; b.AllapotValtozasTortent += f.Uzenet; b.AllapotValtozasTortent += n.Uzenet; b.Start(); b.AllapotValtozasTortent -= f.Uzenet; b.AllapotValtozasTortent -= n.Uzenet; }