事件基础

来源:互联网 发布:php对象的作用 编辑:程序博客网 时间:2024/06/01 22:56

最基本的事件举例:

//参数构建

public class CarInfoEventArgs : EventArgs
    {
        public CarInfoEventArgs(string car)
        {
            this.Car = car;
        }
        public string Car { get; private set; }
    }
    //发布者
    public class CarDealer
    {
        public event EventHandler<CarInfoEventArgs> NewCarInfo;

//新车到
        public void NewCar(string car)
        {
            Console.WriteLine("CarDealer,new car {0}", car);
            if (NewCarInfo != null)
            {
                NewCarInfo(this, new CarInfoEventArgs(car));
            }
        }
       
    }
    //订阅者
    public class Consumer
    {
        private string name;
        public Consumer(string name)
        {
            this.name = name;
        }
        public void NewCarIsHere(object sender, CarInfoEventArgs e)
        {
            Console.WriteLine("{0} Car {1} is new ",name,e.Car);
        }
    }


    class Program
    {
        static void Main(string[] args)
        {

            var dealer = new CarDealer();
            var mm = new Consumer("love");
            //用户订阅了新车到的通知
            dealer.NewCarInfo += mm.NewCarIsHere;
            //新车到 触发NewcarsiHere 方法
            dealer.NewCar("www");
            Console.ReadKey();
        }
    }

0 0