static void Main(string[] args) { // A delegate is a type safe function pointer; //HEllofunctionDelegate del = new HEllofunctionDelegate(Hello); //del("Hello from delegate"); List <Employee> emplist = new List <Employee>(); emplist.Add(new Employee() { ID = 101, Name = "afshan", Salary = 100000, Experience = 5 }); emplist.Add(new Employee() { ID = 102, Name = "noreen", Salary = 100000, Experience = 10 }); emplist.Add(new Employee() { ID = 103, Name = "asma", Salary = 100000, Experience = 3 }); emplist.Add(new Employee() { ID = 105, Name = "kanza", Salary = 100000, Experience = 4 }); checkPromotion isprom = new checkPromotion(Promote); Employee.Promoted(emplist, isprom); Employee.Promoted(emplist, emp => emp.Experience >= 5); }
//function as parameter public static void Promoted(List <Employee> emplist, checkPromotion Iselibigibletopromote) { foreach (Employee employee in emplist) { if (Iselibigibletopromote(employee)) { Console.WriteLine(employee.Name + " Promoted "); } } }