柚子快报邀请码778899分享:C#事件学习
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 事件学习
{
//定义一个领导类,发布事件
public class leader
{
//声明一个委托
public delegate void WorkHandle(string msg);
//实用自定义委托类型定义事件
public event WorkHandle workEvent;
//发出事件
public void goBackToWork(string msg)
{
//判断是否绑定了注册事件的方法
if (workEvent != null)
{
//事件触发
workEvent(msg);
}
}
}
//定义一个员工类处理事件
public class worker
{
//字段
public string Name;
//构造函数
public worker(string name)
{
Name = name;
}
//事件处理函数
public void sendMsg(string message)
{
Console.WriteLine(message);
Console.WriteLine(this.Name + ":知道了,我会去加班的!");
}
}
class Program
{
static void Main(string[] args)
{
//初始化领导对象
leader hu = new leader();
//实例化员工对象
worker xie = new worker("谢峰");
//订阅事件
//胡总.发布的事件+=领导.委托(谢峰.做事)
hu.workEvent += new leader.WorkHandle(xie.sendMsg);
//触发事件
hu.goBackToWork("胡:谢峰,快滚回去加班写代码!");
Console.WriteLine("_______________________________");
Console.ReadKey();
}
}
}
运行效果图:
柚子快报邀请码778899分享:C#事件学习
发表评论