黑马程序员技术交流社区

标题: 一个委托delegate [打印本页]

作者: 罗代势    时间: 2012-12-16 16:17
标题: 一个委托delegate
    class Program
    {
        static void Main(string[] args)
        {
            Test test = new Test();  //实例一个Test类的test对象
            string s = "调用委托";   //定义一个字符串
            DeShow ds = new DeShow(test.Show); //实例一个委托ds对象
            ds += Show1;                       //使用运算符"+="添加Show1方法到委托对象中
            ds(s);                             //调用委托
            MethodShow(test.Show);            //调用包含委托为参数的方法,并且把test.Show方法传入
            Console.ReadKey();
            /*结果:
             调用委托
             字符串的长度:4
             显示一个普通方法!
             ----------------------------------
             字符串的长度:34
             -----------委托作为参数-----------
             字符串的长度:28
             ----------------------------------
             字符串的长度:34
                                             */
        }
        /// <summary>
        /// 定义一个包含委托为参数的方法
        /// </summary>
        static void MethodShow(DeShow deShow)    //传入字符串的方法,且委托作为参数
        {
            deShow("----------------------------------");
            deShow("-----------委托作为参数-----------");
            deShow("----------------------------------");
        }
        static void Show1(string str1)
        {
            Console.WriteLine("显示一个普通方法!");
        }
    }
    public class Test
    {
        public void Show(string Msg)   //显示方法
        {
            Console.WriteLine(Msg);
            Console.WriteLine("字符串的长度:{0}",Msg.Length);
        }
    }
    public delegate void DeShow(string str); //定义一个委托类
作者: 许庭洲    时间: 2012-12-16 21:20
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2