// 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..."); }
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); }
public static void EsegueDelegati(Delegato delegato) { Console.WriteLine("eseguo il delegato"); delegato(); }