标签:
都说C#的委托与事件,对初学者来说很难,但是一跃过去就很简单了
单是我这个一跃不知道还要多久,为什么对有些人来说简单的事,我却那么难,好吧,这个是必须掌握的
需求:发卡器,我要去程序中调用发卡器的方法,得到卡的卡号信息
常人理解:很简单,卡一方,点下读取的事件就可以了
我:想把它做成公用的DLL,使用事件注册来实现读取卡号
1.新建类库 ReaderTest--》类Reader
public Reader(){}-->构造函数(里面又写了连接发卡器的方法)
2.定义委托
public delegate void ReaderEventHandler(CardInfo card);
3.定义事件
public event ReaderEventHandler ReaderEvent;
4.事件触发方法
protected virtual void ReaderCard(CardInfo card)
{ //防止可能存在的多线程同步问题。
6.对外的方法界面类调用方法 实现事件数据传输通道口
public void GetCardInfo()
{
//逻辑方法处理处
}
7。生成dll
8.界面类使用(添加完引用)
先实例化类
在LOAD里注册事件
Reader.ReaderCardEvent += new XZX.ReaderSU.ReaderCard.ReaderCardHandler(ReadCard);
//ReadCard方法实现 与内部委托参数一致
标签:
原文地址:http://www.cnblogs.com/Gracedream/p/5139951.html