using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; //delegáti namespace cv04 { delegate void fce2(); class Polozka { public fce2 Fce; public string popis; public char znak; } class Program { delegate double fce(double op1, double op2); static void Main(string[] args){ Dictionary menu = new Dictionary(); menu.Add('H', new Polozka(){ Fce = new fce2(Hello), popis = "Hello", znak = 'H'}); menu.Add('N', new Polozka() { Fce = new fce2(Nazdar), popis = "nazdar", znak = 'N' }); menu.Add('A', new Polozka() { Fce = delegate() { Console.WriteLine("ahoj"); }, popis = "ahoj", znak = 'A' }); menu['H'].Fce += new fce2(Nazdar); while (true) { foreach (KeyValuePair polozka in menu) { Console.WriteLine(polozka.Key + " " + polozka.Value.popis); } string volba = Console.ReadLine(); if(menu.ContainsKey(volba[0])) menu[volba[0]].Fce(); } ///////////////////////////////////////////////////////////////////// /*fce Operace; Operace = new fce(scitani); Console.WriteLine(Operace(5, 3)); //Console.ReadLine(); //nebo: Operace = delegate(double op1, double op2) { return op1 * op2; }; Console.WriteLine(Operace(5, 3)); Console.ReadLine(); */ } static void Hello() { Console.WriteLine("hello"); } static void Nazdar() { Console.WriteLine("nazdar"); } static double scitani(double op1, double op2) { return op1 + op2; } static double odcitani(double op1, double op2) { return op1 - op2; } } }