Delegate در سی شارپ
نویسنده: کمال ح
تاریخ: ۱۳۹۵/۰۱/۰۷ ۱۵:۳۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System;
using System.Windows.Forms;
namespace CSharpDelegates
{
public delegate void Display(string sMsg);
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Display del = new Display(ShowMessage);
del("This is an example for delegate");
}
private void ShowMessage(string strMessage)
{
MessageBox.Show(strMessage);
}
}
} using System.Collections.Generic;
namespace CSharpDelegates
{
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public int Experience { get; set; }
public double Salary { get; set; }
public void IncreaseSalary(List<Employee> Employees)
{
foreach (Employee emp in Employees)
{
if (emp.Salary < 10000)
{
emp.Salary = emp.Salary + emp.Salary * 0.3;
}
}
}
}
} using System.Collections.Generic;
namespace CSharpDelegates
{
public delegate bool SalaryIncreaseEligibility(Employee emp);
public class Employee
{
public int EmployeeId { get; set; }
public string Name { get; set; }
public int Experience { get; set; }
public double Salary { get; set; }
public string IncreaseSalary(List<Employee> Employees, SalaryIncreaseEligibility del)
{
string sSalIncreasdEmployees = "Salary increased for ";
foreach (Employee emp in Employees)
{
if (del(emp))
{
emp.Salary = emp.Salary + emp.Salary * 0.3;
sSalIncreasdEmployees = sSalIncreasdEmployees + emp.Name + " ,";
}
}
return sSalIncreasdEmployees;
}
}
} using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace CSharpDelegates
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
List<Employee> empList = new List<Employee>();
empList.Add(new Employee() { EmployeeId = 100, Name = "Mark", Salary = 2000, Experience = 3 });
empList.Add(new Employee() { EmployeeId = 101, Name = "John", Salary = 15000, Experience = 8 });
empList.Add(new Employee() { EmployeeId = 102, Name = "David", Salary = 4000, Experience = 4 });
empList.Add(new Employee() { EmployeeId = 103, Name = "Bob", Salary = 50000, Experience = 14 });
empList.Add(new Employee() { EmployeeId = 104, Name = "Alex", Salary = 9000, Experience = 6 });
SalaryIncreaseEligibility del = new SalaryIncreaseEligibility(SalaryEligibility);
Employee objEmp = new Employee();
string sMsg = objEmp.IncreaseSalary(empList, del);
MessageBox.Show(sMsg);
}
private bool SalaryEligibility(Employee emp)
{
if (emp.Salary > 10000)
{
return true;
}
else
{
return false;
}
}
}
}