C#事件与委托

来源:互联网 发布:半岛雪人 mac 编辑:程序博客网 时间:2024/06/08 02:15

银行卡绑定手机案例:
银行卡每次一刷卡消费,就往相关的手机上发一个消息。
银行卡类(发布者) 手机类(订阅者)

代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace task2{    public delegate void SwingCardEvent(int money);   //委托刷卡事件    class BankCard          //发布者    {        private int money;//消费的钱        public int Money        {            get { return money; }            set { money = value; }        }        public event SwingCardEvent SpendMoney;        //事件        public void Spend(int money)        {            Console.WriteLine("欢迎您购物!");            if(SpendMoney!=null)            {                SpendMoney(money);            }        }    }    class Phone    {        public int carMoney = 10000;//卡中总钱数        public void Do(int money)        {            Console.WriteLine("{0}已经被花完!", money);            Console.WriteLine("您当前银行卡上有钱为:{0},本次消费为:{1},还剩余为:{2}\n", this.carMoney,money, (this.carMoney -money));            carMoney = carMoney -money;        }    }    class Program    {        static void Main(string[] args)        {            BankCard card = new BankCard();            Phone ph = new Phone();            card.SpendMoney += ph.Do;        //建立关联            card.Spend(30);               //调用1            card.Spend(50);               //调用2            Console.ReadLine();        }    }}

运行截图:

这里写图片描述

原创粉丝点击