读书人

C# 嘱托合并委托(多路广播委托)

发布时间: 2013-02-25 10:23:36 作者: rapoo

C# 委托,合并委托(多路广播委托)

委托是一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义。下面的示例声明了一个名为 Del 的委托,该委托可以封装一个采用字符串作为参数并返回 void 的方法。
    class Class1    {              public delegate void PrintDelegate(string name, string id);        public delegate void Del(int i);        static void Main(string[] args)        {            Class1 obj = new Class1();            PrintDelegate delegate1 = PrintStudent;            PrintDelegate delegate2 = obj.PrinteBook;            // +运算符操作的对象只能是委托对象。            //PrintDelegate multiDel = delegate1 + delegate2;                        //但是 += 右边的操作对象可以是方法签名。            //简单的多播委托。             PrintDelegate multiDel = null;            multiDel += obj.PrinteBook;            multiDel += PrintStudent;            multiDel("test", "123");                       Del d = delegate(int i)            {                Console.WriteLine(++i);            };            d(10);                        Console.Read();        }        /**         * 静态方法和非静态方法都可以用于委托的,签名方法。         * */        //静态方法        public static void PrintStudent(string name, string id)        {            Console.WriteLine("学生信息");            Console.WriteLine("学号:{0}",id);            Console.WriteLine("姓名:{0}",name);        }        //非静态方法。          public void PrinteBook(string bookName, string code)        {            Console.WriteLine("书籍信息");            Console.WriteLine("编号:" + code);            Console.WriteLine("书名:" + bookName);        }           }


读书人网 >C#

热点推荐