基于事件的程序设计技术简单事例

来源:互联网 发布:京都议定书 知乎 编辑:程序博客网 时间:2024/04/29 19:49

l 场景

主要实现以下功能:

掌握事件与委托,出版社发行刊物时候,触发或者发布事件onpublish,事件一旦触发,事件的订阅者会收到该报刊“xx,收到报刊”(其中的XX为事件发生时传递的参数值)。

l 实验方法

1. 在控制台应用程序程序中编写代码,项目名为EventTest

1. 声明出版社class Publisherde事件发布者类,该类中包含报刊发行事件onpublish和委托publish()

2. 在class Publisherde进一步声明public void issue()发行刊物方法,触发事件。

3. 再声明calss  Subscriber 事件订阅者类,该类提供一个事件处理方法——public void Receive()(收到刊物方法)。 

4、在main方法中,调用issue(),触发并订阅事件。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace EventTest{    public delegate void MyDelegate();    public class Publisherde    {        public event MyDelegate publish;        public void onpublish()        {            Console.WriteLine("发行报刊------------触发事件");        }        public void issue()        {            if (publish != null)            {                publish();            }        }    }    class Subscriber    {        public void Receive()         //事件处理方法        {            Console.WriteLine("zxy收到报刊--------响应时间,执行事件处理函数");        }    }       class Program    {        static void Main(string[] args)        {            Subscriber ss = new Subscriber();            Publisherde pub = new Publisherde();            MyDelegate md = new MyDelegate(pub.onpublish);            MyDelegate md1 = new MyDelegate(ss.Receive);            md = md + md1;            pub.publish += md;                        pub.issue();            Console.Read();        }    }}


0 0
原创粉丝点击