博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net EventHandler 事件处理
阅读量:5172 次
发布时间:2019-06-13

本文共 2143 字,大约阅读时间需要 7 分钟。

 通常定义事件 都是通过自定义委托的方式来实现, 今天使用EventHandler   委托来定义事件:

 

public class NewMailEventArgs : EventArgs    {        private readonly string m_from;        private readonly string m_to;        private readonly string m_subject;        public NewMailEventArgs(string from, string to, string subject)        {            m_from = from;            m_to = to;            m_subject = subject;        }        public string From { get { return m_from; } }        public string To { get { return m_to; } }        public string Subject { get { return m_subject; } }      }    //定义事件成员    public class MailManager    {        public event EventHandler
NewMail; public virtual void OnNewMail(NewMailEventArgs e) { //Volatile线程 Threading.Tasks EventHandler
temp = Volatile.Read(ref NewMail); if (temp != null) { temp(this, e); } } public void SimulateNewMail(string from, string to, string subject) { //构造一个对象来容纳想传给通知接受者的信息 NewMailEventArgs e = new NewMailEventArgs(from, to, subject); //调用虚方法通知对象事件已发生 //如果没有类型重写该方法,我们的对象将通知事件的所有等级对象 OnNewMail(e); } } public sealed class Fax { ///
/// 将MailManager 对象传给构造器 /// ///
public Fax(MailManager mail) { mail.NewMail += FaxMsg; } ///
/// 注销事件 /// ///
public void UnFax(MailManager mail) { mail.NewMail -= FaxMsg; } //新电子邮件到达时,mailManager调用这个方法 public void FaxMsg(object sender, NewMailEventArgs e) { Console.WriteLine("Faxing mail message:"); Console.WriteLine(" From={0},To={1},Subject={2}", e.From, e.To, e.Subject); } } static void Main(string[] args) { MailManager mail = new MailManager(); Fax fax = new Fax(mail); mail.SimulateNewMail("from0", "to1", "subject2"); }

 

转载于:https://www.cnblogs.com/dragon-L/p/5348536.html

你可能感兴趣的文章
【无聊放个模板系列】BZOJ 3172 (AC自动机)
查看>>
【BZOJ 4503】4503: 两个串 (FFT)
查看>>
《移动平台开发实践》第1周作业
查看>>
文件上传(实例)
查看>>
ROS在rviz中实时显示轨迹(nav_msgs/Path消息的使用)
查看>>
BZOJ 1443 游戏(二分图博弈)
查看>>
Ubuntu修改默认root及密码
查看>>
linux中安装typecho的pathinfo配置
查看>>
git解决 remote: Permission to wuheng1991/site-manager.git denied to XXX
查看>>
MSIL实用指南-struct的生成和操作
查看>>
编译与运行、解释程序与编译程序
查看>>
异步编程的优势和难点
查看>>
P1008 三连击
查看>>
平衡树(模板+文艺平衡树)
查看>>
汉字注音符号学习(引用自维基百科)
查看>>
opencv_python学习笔记十三
查看>>
[封装] 修改NSString中部分字段的颜色
查看>>
void指针(void*)用法
查看>>
Android:TextView控件
查看>>
Shell与脚本
查看>>