chapter20:委托与事件案例回顾

xiaoxiao2021-02-28  45

源代码:

(1)调用方  InvokeClass.cs

/*** *委托的调用方(包括定义委托) * * 分四个步骤: * 1.定义委托 * 2.声明委托  (声明委托的实例) * 3.注册 * 4.调用 *  * 注意:先注册,后调用 *  *  *  */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace chapter20委托与事件案列回顾{    //定义委托,委托定义以Handler结尾,微软的定义方式,委托也相当于一个类,定义在类的外面    public delegate void InformInfoHandler(string name);    public class InvokeClass    {        //声明事件,事件是委托的一个实例        public static event InformInfoHandler eveInfo;        /// <summary>        /// 方法调用,即触发事件        /// </summary>        public void DisplayInfo()        {            if (eveInfo != null)           //说明委托已经注册方法了            {                //eveInfo("我是前台小张");                eveInfo.Invoke("我是前台小张");            }        }    }

}

(2)注册方   Register.cs

/*** *注册方:方法注册  *  *  */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace chapter20委托与事件案列回顾{    public class RegisterClass    {        public RegisterClass()        {            //可以注册实例方法            InvokeClass.eveInfo += InformZhangsan;            InvokeClass.eveInfo += InformLisi;            //也可以注册静态方法            InvokeClass.eveInfo += InformWangwu;        }        public void InformZhangsan(string name)        {            Console.WriteLine("{0},张三, 注意, 老板来了", name);        }        public void InformLisi(string name)        {            Console.WriteLine("{0},李四, 注意, 老板来了", name);        }        public static void InformWangwu(string name)        {            Console.WriteLine("{0},王五, 注意, 老板来了", name);        }    }

}

(3)测试   Program.cs

/*** *测试 *  *  *  */using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace chapter20委托与事件案列回顾{    class Program    {        static void Main(string[] args)        {            //运行事件的注册            new RegisterClass();            //运行调用方            InvokeClass obj = new InvokeClass();            obj.DisplayInfo();        }    }}

转载请注明原文地址: https://www.6miu.com/read-2619406.html

最新回复(0)