欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#委托事件随笔

程序员文章站 2022-06-19 17:54:08
//用户去银行取钱(发布方),用户收到短信提醒,(接收方) class Program { static void Main(string[] args) { Bank b = new Bank(); //实例化银行 User xm = new User("... ......
 //用户去银行取钱(发布方),用户收到短信提醒,(接收方)
    class Program
    {
        static void Main(string[] args)
        {
            Bank b = new Bank();                      //实例化银行
            User xm = new User("110","1278326@qq.com");         //实例化用户 
            b.send += new Bank.sendEventHandle(xm.ReviceTel);     //注册事件
            b.send += new Bank.sendEventHandle(xm.ReviceEmail);    //注册事件
            b.issure(xm);                           //执行事件
            Console.ReadKey();
        }
    }

    public class Bank {

        public delegate void sendEventHandle(object o, User xx);  //定义委托

        public event sendEventHandle send;              //基于委托的事件

        public void issure(User xx) {
            send(this,xx);
        }
    }

    public class User:EventArgs{

        public string tel;
        public string email;

        public User(string telephone, string email)
        {
            this.email = email;
            this.tel = telephone;
        }

        public void ReviceTel(object o , User x)
        {
            Console.WriteLine("收到短信"+ x.tel);

        }

        public void ReviceEmail(object o, User x)
        {
            Console.WriteLine("收到emile" + x.tel);

        }

    }