但是事件并不局限于图像界面,也可能是满足程序的某个逻辑判断触发了事件。引发事件的对象叫做事件发送方,捕获事件并对其做出响应的对象叫做事件接收方。但是事件发送方并不知道哪个对象或者方法会处理它引发的事件,所以需要在事件发送方和事件接收方之间存在一媒介,明确某个对象或者某个类型的某个方法会对这个事件进行响应。.NET用委托作为事件发送方与事件接收方之间的媒介,委托只有一个签名,只要方法签名与委托签名匹配的方法,都可以声明自己对这个委托类型的事件的感兴趣,接收并处理它。
事件发送方的对象为了给事件接收对象传递一些额外信息,就需要写一个派生于System.EventArgs的类,封装一些数据。
public class DrawManager
{
public event ShapeSizeChangedSizeChanged;
protectedvoid OnSizeChanged(DrawEventArgse)
{
ShapeSizeChangedtemp = SizeChanged;
//是否有委托与该事件关联
if(temp != null)
{
temp(this,e);
}
}
public void SizeChange(doublesize)
{
DrawEventArgse = new DrawEventArgs(size);
OnSizeChanged(e);
}
}
本文地址:https://www.stayed.cn/item/6359
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我