C#事件发布与订阅

书店新书通知

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace _1
{
    delegate void BookHand(string book);//引发事件
    class BookStore
    {
        public event BookHand OnNewBook;//定义事件
        public void NewBook(string book)//定义触发条件
        {
            OnNewBook(book);
        }
    }
    class Customer
    {
        private string _name;//顾客名

        public Customer(string name)//构造函数
        {
            _name = name;
        }

        void store_OnNewBook(string book)//输出语句,也是事件触发的结果函数
        {
            Console.WriteLine("{0}您好:书店新到新书《{1}》", _name, book);
        }

        public void Register(BookStore store)
        {
            store.OnNewBook += store_OnNewBook;//将结果函数并入事件中;
        }
    }
    //我认为的程序流程: 先有店和顾客,然后将顾客分到店中,也就是某个店的顾客(register),当书店进入新书执行(store.NewBook),这时候就会执行Customer的store_OnNewBook;
    class Program
    {
        static void Main(string[] args)
        {
            BookStore store=new BookStore();
            Customer c1=new Customer("小明");
            Customer c2=new Customer("赵丽");
            c1.Register(store);
            c2.Register(store);
            store.NewBook("c#程序设计");
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值