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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值