static void Main(string[] args) { List <Employee> empl = new List <Employee>(); empl.Add(new Employee() { ID = 101, Name = "sayali", salary = 20000, Experiance = 3, grade = "E1" }); empl.Add(new Employee() { ID = 102, Name = "pooja", salary = 30000, Experiance = 5, grade = "E1" }); empl.Add(new Employee() { ID = 103, Name = "mayuri", salary = 50000, Experiance = 8, grade = "E2" }); empl.Add(new Employee() { ID = 104, Name = "kimaya", salary = 10000, Experiance = 2, grade = "E2" }); empl.Add(new Employee() { ID = 104, Name = "Shweta", salary = 90000, Experiance = 9, grade = "E2" }); //Employee.PromoteEmp(empl); isPromote pro = new isPromote(promote); Employee.PromoteEmp(empl, pro); }
public static void PromoteEmp(List <Employee> employeeList, isPromote isEligible) { foreach (Employee emp in employeeList) { if (isEligible(emp)) { Console.WriteLine(emp.Name + " " + "Promoted."); } } }
public static void PromoteEmp(List <Employee> EmployeeList, isPromote IsEligible) { foreach (Employee emp in EmployeeList) { if (IsEligible(emp))//logic condition { Console.WriteLine(emp.Name + " Promoted"); } } Console.ReadKey(); }
public static void PromoteEmp(List <Employee> EmployeeList, isPromote IsEligible) { foreach (Employee emp in EmployeeList) { //you can see that there is no hard coded logic to promote an employee. //The logic is used when we call this method. if (IsEligible(emp)) //logic condition { Console.WriteLine(emp.Name + " Promoted"); } } }
static void Main(string[] args) { List <Employee> empl = new List <Employee>(); empl.Add(new Employee() { ID = 101, Name = "Shorif", Experiance = 6, salary = 10000 }); empl.Add(new Employee() { ID = 102, Name = "Saddam", Experiance = 3, salary = 80000 }); empl.Add(new Employee() { ID = 103, Name = "Sagor", Experiance = 10, salary = 40000 }); isPromote objdelpro = new isPromote(Promote); Employee.PromoteEmp(empl, objdelpro); Console.ReadKey(); }
static void Main(string[] args) { List <Employee> empl = new List <Employee>(); empl.Add(new Employee() { ID = 101, Name = "Brad", salary = 20000, Experiance = 13 }); empl.Add(new Employee() { ID = 102, Name = "John", salary = 30000, Experiance = 4 }); empl.Add(new Employee() { ID = 103, Name = "Suzan", salary = 50000, Experiance = 8 }); empl.Add(new Employee() { ID = 104, Name = "Mike", salary = 10000, Experiance = 2 }); //Using delegate business logic got separated from employee class which makes code reusable. //Creating an instance of delegate isPromote pro = new isPromote(promote); //Calling PromoteEmp function with passing the employee list and the delegate Employee.PromoteEmp(empl, pro); //multi cast delegate example strDele delobj = new strDele(uppercasestr); //method reference 1 Console.WriteLine(delobj("Thank You")); delobj += new strDele(Lowercasestr); //method reference 2 Console.WriteLine(delobj("Thank You")); }