专业编程基础技术教程

网站首页 > 基础教程 正文

委托与事件实例 C#

ccvgpt 2024-08-28 13:36:14 基础教程 35 ℃

关注我,为您分享C#技术实现,感谢点赞及收藏、转发

一、 定义员工类

委托与事件实例 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();

}

运行结果:

最近发表
标签列表