【扩展】链式编程初识

        /// <summary>  
        /// 链式编程示例2  
        /// </summary>  
        private static  void Example2()  
        {  
            Person person = new Person { Name = "Tom" }  
                .Run()  
                .Sing()  
                .Swim();  
        }  
  
        class Person  
        {  
            public string Name { get; set; }  
  
            public Person Run()  
            {  
                Console.WriteLine("Run");  
                return this;  
            }  
            public Person Swim()  
            {  
                Console.WriteLine("Swim");  
                return this;  
            }  
            public Person Sing()  
            {  
                Console.WriteLine("Sing");  
                return this;  
            }  
        }      

这段代码定义了Peoson类,有三个操作Run、Swim、Sing,操作完成后返回自身this(有返回值是链式编程的关键)。返回自身this好比说执行完操作先别走人,还(可能)有其它操作要去做,如Example2中:先造一个People,先命令ta跑步,跑完先别休息再唱歌,再游泳,游泳完OK了。

链式编程是将多个操作(多行代码)通过点号"."链接在一起成为一句代码。(定义不严密,表达能力好的请给修正一下)
以下为常规代码与链式代码的比较:

        /// <summary>  
        /// 链式编程示例3  对比  
        /// </summary>  
        private void Example3()  
        {  
            //链式代码  
            Person person = new Person { Name = "Tom" }  
                .Run()  
                .Sing()  
                .Swim()  
                .Run()  
                .Sing()  
                .Swim();  
            //常规代码  
            Person person2 = new Person();  
            person2.Run();  
            person2.Sing();  
            person2.Swim();  
            person2.Run();  
            person2.Sing();  
            person2.Swim();  
        }      

为了增强效果,都执行了两轮操作。个人感觉链式代码更加精炼简洁易读。

posted @ 2017-12-23 14:54  LolitaGIS的笔记  阅读(272)  评论(0编辑  收藏  举报