Support us .Net Basics C# SQL ASP.NET ADO.NET MVC Slides C# Programs Subscribe Buy DVD

Part 38 - C# Tutorial - Delegates Example - II

Click here for the article related to Delegates Example Part I
Click here for the article related to Delegates Example Part II
Part 38 - C# Tutorial - Delegates Example - II


7 comments:

  1. fire our employees? haha

    ReplyDelete
  2. Delegates : -

    I have written the code like below but not working it has been showing errors i was unable to find out the errors please tell me that what is the wrong with below code.Thank you...

    using System;
    using System.Collections.Generic;

    public class WithDelClassEx {

    public static void Main() {

    List emplist=new List();

    emplist.Add(new Employee() {Id=1, Name="sivakumar", Experience=8});
    emplist.Add(new Employee() {Id=2, Name="Aravind", Experience=6});
    emplist.Add(new Employee() {Id=3, Name="jagadeesh", Experience=10});
    emplist.Add(new Employee() {Id=4, Name="subbalakshmi", Experience=9});

    IsPromotable isPromotable=new IsPromotable(EligibleEmp);

    public static bool EligibleEmp(Employee ee) {
    if(ee.Experience>=8) {
    return true;
    }
    else {
    return false;
    }
    }

    Employee.PromoteEmployee(emplist, isPromotable);

    }
    }

    delegate bool IsPromotable(Employee emp1);

    class Employee {

    public int Id{ set; get; }
    public string Name{ set; get; }
    public int Experience{ set; get; }

    public static void PromoteEmployee(List emp, IsPromotable IsEligibleToPromote) {
    foreach(Employee employee in emp) {
    if(IsEligibleToPromote(employee)) {
    Console.WriteLine("Employee"+" "+employee.Name+" "+"Promoted");
    }
    }
    }

    }

    ReplyDelete
  3. Same Code As demonstrated in video.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication2
    {
    class Delegate
    {
    public static void Main()
    {
    List emplist = new List();
    emplist.Add(new Employee() { ID = 101, Name = "Mohan", Salary = 5000, Experience = 5 });
    emplist.Add(new Employee() { ID = 102, Name = "Alan", Salary = 6000, Experience = 6 });
    emplist.Add(new Employee() { ID = 103, Name = "Suresh", Salary = 7000, Experience = 3 });
    emplist.Add(new Employee() { ID = 104, Name = "Jay", Salary = 4000, Experience = 3 });
    emplist.Add(new Employee() { ID = 105, Name = "Sachin", Salary = 4500, Experience = 3 });
    IsPromotable del = new IsPromotable(Promote);
    Employee.PromoteEmployee(emplist,del);
    }
    public static bool Promote(Employee emp)
    {
    if(emp.Experience >=5)
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    }
    delegate bool IsPromotable(Employee empl);
    class Employee
    {
    public int ID { get; set; }
    public string Name { get; set; }
    public int Salary { get; set; }
    public int Experience { get; set; }

    public static void PromoteEmployee(List employeelist, IsPromotable ispromotable)
    {
    foreach (Employee employee in employeelist)
    {
    if (ispromotable(employee))
    {
    Console.WriteLine(employee.Name + " is promoted");
    }
    }
    }
    }
    }

    ReplyDelete
  4. Modified Code:
    __________________________



    using System;
    using System.Collections.Generic;

    public class WithDelClassEx
    {

    public static void Main()
    {

    List emplist = new List();

    emplist.Add(new Employee() { Id = 1, Name = "sivakumar", Experience = 8 });
    emplist.Add(new Employee() { Id = 2, Name = "Aravind", Experience = 6 });
    emplist.Add(new Employee() { Id = 3, Name = "jagadeesh", Experience = 10 });
    emplist.Add(new Employee() { Id = 4, Name = "subbalakshmi", Experience = 9 });

    IsPromotable isPromotable = new IsPromotable(EligibleEmp);
    Employee.PromoteEmployee(emplist, isPromotable);
    }

    static bool EligibleEmp(Employee ee)
    {
    if (ee.Experience >= 8)
    {
    return true;
    }
    else
    {
    return false;
    }
    }




    }

    delegate bool IsPromotable(Employee emp1);

    class Employee
    {

    public int Id { set; get; }
    public string Name { set; get; }
    public int Experience { set; get; }

    public static void PromoteEmployee(List emp, IsPromotable IsEligibleToPromote)
    {
    foreach (Employee employee in emp)
    {
    if (IsEligibleToPromote(employee))
    {
    Console.WriteLine("Employee" + " " + employee.Name + " " + "Promoted");
    }
    }
    }

    }

    _________________________

    1.using System.Collections.Generic.List requires 1 typ argument.List emplist=new List();

    2. Delegate function IsPromotable() need to be declare outside the main method

    3. corrected syntax error and scope of access modifier

    ReplyDelete
    Replies
    1. using System;
      using System.Collections.Generic;

      public class WithDelClassEx
      {

      public static void Main()
      {

      List emplist = new List();

      emplist.Add(new Employee() { Id = 1, Name = "sivakumar", Experience = 8 });
      emplist.Add(new Employee() { Id = 2, Name = "Aravind", Experience = 6 });
      emplist.Add(new Employee() { Id = 3, Name = "jagadeesh", Experience = 10 });
      emplist.Add(new Employee() { Id = 4, Name = "subbalakshmi", Experience = 9 });

      IsPromotable isPromotable = new IsPromotable(EligibleEmp);
      Employee.PromoteEmployee(emplist, isPromotable);
      }

      static bool EligibleEmp(Employee ee)
      {
      if (ee.Experience >= 8)
      {
      return true;
      }
      else
      {
      return false;
      }
      }




      }

      delegate bool IsPromotable(Employee emp1);

      class Employee
      {

      public int Id { set; get; }
      public string Name { set; get; }
      public int Experience { set; get; }

      public static void PromoteEmployee(List emp, IsPromotable IsEligibleToPromote)
      {
      foreach (Employee employee in emp)
      {
      if (IsEligibleToPromote(employee))
      {
      Console.WriteLine("Employee" + " " + employee.Name + " " + "Promoted");
      }
      }
      }

      }

      Delete
  5. hiii sir you pass expression to delegates use emp=>emp.experiace>=5 but not mention about emp .so what it is

    ReplyDelete
  6. Your tutorials are awesome. You can clearly see that you put in much effort in creating them and that you know what you are talking about. Thank you so much!

    ReplyDelete

If you like this website, please share with your friends on facebook and Google+ and recommend us on google using the g+1 button on the top right hand corner.