委托

  委托是一种特殊的对象类型,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。 

    
public delegate void SayDelegate(string name);   //定义委托
 
    public class ClassPeople
    {
        public void SayChinese(string name)
        {
            Console.WriteLine("你好,"+name);
        }
 
        public void SayEnglish(string name)
        {
            Console.WriteLine("Hello," + name);
        }
 
        //接受SayDelegate类型的方法作为参数
        public void DoWork(string name, SayDelegate MakeSay)
        {
            MakeSay(name);
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            ClassPeople cp = new ClassPeople();
 
            cp.DoWork("linyongqin", cp.SayChinese);
 
            cp.DoWork("yokin",cp.SayEnglish);
 
            Console.WriteLine("---------------华丽的分隔线-----------------");
 
            //将多个方法绑定到同一个委托,这就是多播委托
 
            string name1 = "阿墉";
 
            //SayDelegate sayDelegate1 = cp.SayChinese;   // = : 赋值
 
            SayDelegate sayDelegate1 = new SayDelegate(cp.SayChinese);
 
            sayDelegate1 += cp.SayEnglish; //  += :绑定   给委托变量再绑定一个方法
 
            sayDelegate1 -= cp.SayChinese; //取消对SayChinese方法的绑定
 
            cp.DoWork(name1, sayDelegate1);
 
            Console.ReadKey();
        }
    }

 

posted @ 2014-08-18 10:22  linyongqin  阅读(109)  评论(0)    收藏  举报