//Framework class - no hard coded logic public static void PromoteEmployee(List <Employee> employeeList, PromotionEligible promotionEligible) { foreach (Employee employee in employeeList) { if (promotionEligible(employee)) { Console.WriteLine(employee.name + " is promoted."); } else { Console.WriteLine(employee.name + " is not promoted."); } } }
public static void Main(string[] args) { TypeHelloDelegate del = new TypeHelloDelegate(TypeHello);//Create instance of a delegate like a class del("Ujjwal"); List <Employee> empList = new List <Employee>(); empList.Add(new Employee() { name = "Ujjwal", age = 28, exp = 4 }); empList.Add(new Employee() { name = "Ankur", age = 27, exp = 6 }); empList.Add(new Employee() { name = "Faizal", age = 28, exp = 6 }); empList.Add(new Employee() { name = "Manu", age = 32, exp = 8 }); empList.Add(new Employee() { name = "Shubha", age = 17, exp = 0 }); PromotionEligible delPromotionEligibleAge = new PromotionEligible(PromotionAge); PromoteEmployee(empList, delPromotionEligibleAge); PromotionEligible delPromotionEligibleExp = new PromotionEligible(PromotionExperience); //PromoteEmployee(empList, delPromotionEligibleExp); Console.ReadLine(); }