关注我,为您分享C#技术实现,感谢点赞及收藏、转发
一、 定义员工类
代码示例:
/// <summary>
/// 员工类
/// </summary>
public class Employee
{
/// <summary>
/// 定义委托一个事件
/// </summary>
public event DelegateClassHandle PlayGame;
string ename ="";
/// <summary>
/// 员工
/// </summary>
public string Ename
{
get { return ename; }
set { ename = value; }
}
int enumber = 0;
/// <summary>
/// 工位
/// </summary>
public int Enumber
{ get => enumber; set => enumber = value; }
/// <summary>
/// 带参数员工构造函数
/// </summary>
/// <param name="_name">员工</param>
/// <param name="_number">工号</param>
public Employee(string _name,int _number)
{
ename = _name;
enumber = _number;
}
/// <summary>
/// 游戏
/// </summary>
public void Game()
{
if (PlayGame != null)
{
Console.WriteLine("我要摸鱼了……哈哈");
//实例化一个参数
CustomeEventArgs e = new CustomeEventArgs();
e.Name = Ename;
e.Number = Enumber;
PlayGame(this,e);
}
}
}
二、 定义报告类
代码示例:
/// <summary>
/// 报告类
/// </summary>
public class Report
{
public void Modify(object sender, CustomeEventArgs e)
{
Console.WriteLine("报告老板{0}在{1}号工位摸鱼!",e.Name,e.Number);
}
}
三、 定义处理类
代码示例:
/// <summary>
/// 财务类
/// </summary>
public class Finance
{
/// <summary>
/// 处罚
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Penalty(object sender, CustomeEventArgs e)
{
Console.WriteLine("处罚人:{0}在因上班摸鱼,罚3个月工资", e.Name);
}
}
四、 传递信息类
代码示例:
/// <summary>
/// 参数类
/// </summary>
public class CustomeEventArgs : EventArgs
{
string name = "";//员工姓名
int number = 0;//所在办公室编号
/// <summary>
/// 员工姓名属性
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
}
/// <summary>
/// 所在办公室编号
/// </summary>
public int Number
{
get { return number; }
set { number = value; }
}
}
五、 Main方法
代码示例:
static void Main(string[] args)
{
Employee employee = new Employee("张三",38);
Report rt = new Report();
Finance fe = new Finance();
////多播委托
employee.PlayGame += new DelegateClassHandle(rt.Modify);
employee.PlayGame += new DelegateClassHandle(fe.Penalty);
employee.Game();
Console.ReadLine();
}
运行结果: