Beispiel #1
0
        private MailManager _mm; //proprietà di solo lettura di Fax
        public Fax(MailManager mm)
        {
            this._mm = mm;
            MailManagerEventHandler del = new MailManagerEventHandler(mm_MailArrived); //costruzione del delegate

            this._mm.MailArrived += del;                                               //invoco add_MailArrived(del)
        }
Beispiel #2
0
 public Printer(MailManager mm)
 {
     this._mm              = mm;
     this._mm.MailArrived += _mm_MailArrived;
     //1) MailManagerEventHandler del = new MailManagerEventHandler(_mm_MailArrived);
     //2) this._mm.MailArrived += del;
 }
Beispiel #3
0
        public Fax(MailManager mm)
        {
            this._mm = mm;
            MailManagerEventHandler del = new MailManagerEventHandler(mm_MailArrived);

            this._mm.MailArrived += del; // invoke add_MailArrived(del);
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            MailManager mm  = new MailManager();
            Fax         fax = new Fax(mm);
            Printer     prn = new Printer(mm);

            mm.SimulateMailArrived("topolino", "Minni", "Cena", "Usciamo stasera?");
            mm.SimulateMailArrived("Minni", "topolino", "Cena", "No, non esco");
        }
Beispiel #5
0
 public Printer(MailManager mm)
 {
     this.mm              = mm;
     this.mm.MailArrived += Mm_MailArrived;
     //questa è una facility sintattica che si può usare, il Delegate viene costruito automaticamente
     //avremmo potuto scrivere:
     //MailManagerEventHandler del = new MailManagerEventHandler(Mm_MailArrived);
     //this.mm.MailArrived += del;
 }
Beispiel #6
0
        public Fax(MailManager mm)
        {
            //qui gli passo un'istanza di MailManager, che sarà la stessa che passerò sia a Fax che a Printer.
            this.mm = mm;
            //questo sarebbe l'"InitializeComponents" della Form
            //Così il Fax ha un riferimento a MailManager; poi si costruisce il metodo proprio di Fax,
            //e lo si mette dentro ad un delegate, il quale viene accodato alla lista dei Delegate dell'evento MailArrived di MailManager
            //tramite il += (che invoca Add_MailArrived, metodo generato dall'evento per aggiungere Delegate alla lista).
            MailManagerEventHandler del = new MailManagerEventHandler(mm_MailArrived);

            this.mm.MailArrived += del;
        }
Beispiel #7
0
        static void Main(string[] args)
        {
            MailManager mm = new MailManager();

            Fax     fax = new Fax(mm);
            Printer prn = new Printer(mm);

            //abbiamo creato un MailManager e passato la stessa istanza ai costruttori di Fax e Print, che quindi
            //appiccicheranno i loro Delegate all'evento della stessa istanza mm.
            //così una volta sollevato l'evento di mm, si andranno ad eseguire i metodi di tutti i subscriber.

            mm.SimulateMailArrived("Agata", "Maurizio", "Call", "Fissiamo la chiamata per mercoledì alle 11");
            mm.SimulateMailArrived("Guglielmo", "Maurizio", "Calcetto", "Stasera alle 18 partitella");
        }
Beispiel #8
0
 public Printer(MailManager mm)
 {
     this._mm              = mm;
     this._mm.MailArrived += _mm_MailArrived;
 }