Example #1
0
        // obiettivo: riuscire a passare ad un metodo, un altro metodo come argomento
        static void Main(string[] args)
        {
            Delegato delegato = null;

            delegato += new Delegato(Program.Metodo1);

            Program prog = new Program();

            delegato += new Delegato(prog.Metodo2);
            // delegato += new Delegato(prog.Metodo3);

            delegato(); // mettere () => significa chiamare il metodo delegato

            EsegueDelegati(delegato);

            EsegueDelegati(new Delegato(Metodo1));

            EsegueDelegati(() => Metodo1());

            EsegueDelegati(() => {
                Console.WriteLine("non sono in un metodo");
                Console.WriteLine("io sono solo il corpo di un metodo senza nome");
            });

            Console.WriteLine("finito...");
        }
Example #2
0
        static void Main(string[] args)
        {
            List <Conto> Banca = new List <Conto>();

            Banca.Add(new ContoIta(1));
            Banca.Add(new ContoIta(2));
            Banca.Add(new ContoIta(3));
            Banca.Add(new ContoIta(4));
            Banca.Add(new ContoIta(5));
            Banca.Add(new ContoCayman(6));
            Banca.Add(new ContoCayman(7));
            Banca.Add(new ContoCayman(8));
            Banca.Add(new ContoCayman(9));
            Banca.Add(new ContoCayman(10));
            Banca.Add(new ContoPremium(11));
            Banca.Add(new ContoPremium(12));
            Banca.Add(new ContoPremium(13));
            Banca.Add(new ContoPremium(14));
            Banca.Add(new ContoPremium(15));

            ContoIta.Tassa     = 2;
            ContoPremium.Bonus = 2;

            foreach (Conto Conto in Banca)
            {
                Conto.Versa(100);
            }

            Banca[0].Bonifica(5, Banca[1]);
            Banca[0].Bonifica(5, Banca[5]);
            Banca[0].Bonifica(5, Banca[10]);
            Banca[11].Bonifica(5, Banca[2]);

            Banca[0].Ritira(100);

            foreach (Conto Conto in Banca)
            {
                Console.WriteLine(Conto.ToString());
            }

            ContoIta Pippo = new ContoIta(99);

            Console.WriteLine(Pippo.ToString());

            if (Banca[5].Equals(Banca[6]))
            {
                Console.WriteLine("Il conto è lo stesso.");
            }
            else
            {
                Console.WriteLine("I conti sono diversi.");
            }

            if (Banca[5].Equals(Banca[5]))
            {
                Console.WriteLine("Il conto è lo stesso.");
            }
            else
            {
                Console.WriteLine("I conti sono diversi.");
            }

            Delegato Ricchezza = delegate(decimal importo) { Console.WriteLine("Regalati " + importo + " soldi a tutti!!!!!"); };

            foreach (Conto Conto in Banca)
            {
                Ricchezza += Conto.Versa;
            }

            Ricchezza(100);

            foreach (Conto Conto in Banca)
            {
                Console.WriteLine(Conto.ToString());
            }

            Ricchezza(10);
        }
Example #3
0
 public static void EsegueDelegati(Delegato delegato)
 {
     Console.WriteLine("eseguo il delegato");
     delegato();
 }