C# 事件
C# 事件包含以下对象或元素:
近期学习了一下C#中事件的用法,因为平时用的不多,所以简单的看了看,做个笔记。
EventArgs:事件发生时事件处理方法需要的数据(状态等),是一个不包含任何逻辑的一个贫血对象。
Delegate EventHandler(Object sender,EventArgs):类型是委托类型,是事件处理函数的委托,sender是事件触发的对象。
event EventHandler Event:类型是事件类型,是一个类型为EventHandler的一个事件委托。一般在需要触发事件的地方进行调用。
写一个手柄按下X键后角色发动攻击的例子:
首先添加一个手柄监视的类:
public class XClickEventArgs : EventArgs { //状态字段 } public class WatchHandle { public delegate XClickEventHandler(Object sender,EventArgs e); public event XClickEventHandler XClickEvent; public bool IsXButtonClick(){ While(1) { //这里写监视代码,比如不断的查询COM接口状态 XClickEvent(this,new XClickEventArgs()); } } }
接下来写当X键按下后执行角色攻击:
public class Player{ private WatchHandle watchHandle; public Player(){ watchHandle = new WatchHandle(); watchHandle += new XClickEventHandler(OnXClick); } public void OnXClick(object sender, XClickEventArgs e){ this.Attack(); } }