c#事件

C#事件

看到事件先不用怕,其实你肯定用过,随便一个winform程序基本都有按钮button,点击按钮会进入一个button_Click的方法,这个就是事件。这个方法平常是不调用的,只有在点击按钮的时候才会调用这个方法。于是我们可以把事件看成两个部分事件发生器(Publisher)与事件接收器(Receiver)。事件发生器即是button按钮注册了点击事件,当按钮被点击时通知事件接收器:我被点击了;事件接收器即是当接收到通知时调用的button_Click的方法。

c#的事件模型是以委托为基础的。委托是调用回调函数的一种类型安全的方式。对象凭借回调方法接受他们订阅的通知。委托的具体运用可以参考C#委托、同步调用、异步调用总结

首先先声明一个委托,再声明一个事件

delegate void MethodDelegate(string input);//表示有一个参数,无返回值
event MethodDelegate MethodEvent;//将创建的委托和事件关联

登记事件并通知事件登记对象

MethodEvent += Method;//登记事件
protected virtual void OnMethodEvent(string str)
{
    if (MethodEvent != null)
        MethodEvent(str);//事件是委托,委托是一个类,因此委托类型为引用类型。声明一个事件,若不给他赋值,他将默认为null,运行时会报错
}

定义一个方法,返回值类型一致且传入的参数类型与数量一致

void Method(string input)//表示有一个参数。与上面的委托一致
{
    //实现
}

触发事件

OnMethodEvent(str);

以上只是我对事件的浅薄理解,事实上事件不止如此简单,具体详细的我就不展开了。如果有什么理解错误的地方,请不吝指出,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值