简简单单认识C#事件

1.什么是事件
事件就是方法数组(即委托链、方法链),从含义来上说就是在干某件事的时候触发的一个通知;例如我某人在喝茶,在喝茶前他需要通知其他人,那么我们就需要在喝茶前定义一个事件。
2.事件的定义
假如我们需要定义一个喝茶事件:

第1步:定义一个喝茶事件处理的方法类型(委托)

public delegate int 喝茶事件处理者(string  喝茶人, string  喝什么茶);
第2步:再在对象中定义他的“开始喝茶”事件
public event 喝茶事件处理者 开始喝茶;

3.喝茶事件
假如我要在“A”喝茶的时候通知“B”那么我们需要在“A”中定义一个喝茶事件,“B”中来接收“A”的事件。

示例:

namespace tea
{
    public delegate void  喝茶事件处理者(string 喝茶人, string 喝什么茶);

    public class 人
    {
        public event 喝茶事件处理者 开始喝茶;

        public void 喝茶()
        {
            //判断是否有人接收通知
            if (开始喝茶 != null)
            {
                //发出通知自己在喝茶。
                开始喝茶("张三", "铁观音");
            }
        }
    }

    public class 管理员
    {
        private 人 喝茶人;

        public 管理员()
        {
            喝茶人 = new 人();

            //接收喝茶人的通知。
            喝茶人.开始喝茶 += new 喝茶事件处理者(喝茶人_开始喝茶);
        }

        private void 喝茶人_开始喝茶(string 喝茶人, string 喝什么茶)
        {
            MessageBox.Show(string.Format("{0}开始喝{1}茶", 喝茶人, 喝什么茶), "有人喝茶");
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值