首页 > 学院 > 开发设计 > 正文

C#实现jQuery的方法连缀

2019-11-14 13:47:09
字体:
来源:转载
供稿:网友

   jQuery的方法连缀使用起来非常方便,可以简化语句,让代码变得清晰简洁。那C#的类方法能不能也实现类似的功能呢?基于这样的疑惑,研究了一下jQuery的源代码,发现就是需要方法连缀的函数方法最后返回对象本身即可。既然javascript可以,C#应该也是可以的。

  为了验证,编写一个jQPerson类,然后用方法连缀对其ID,Name,Age等属性进行设置,请看下面的代码:

 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6  7 namespace CSharpMethodLikeJQuery 8 { 9     public class jQPerson10     {11         string Id { set; get; }12         string Name { set; get; }13         int Age { set; get; }14         string Sex { set; get; }15         string Info { set; get; }16 17         public jQPerson()18         {19 20         }21         /// <summary>22         /// 设置ID,返回this,即jQPerson实例23         /// </summary>24         /// <param name="Id"></param>25         /// <returns></returns>26         public jQPerson setId(string Id)27         {28             this.Id = Id;29             return this;30         }31         /// <summary>32         /// 返回this,即jQPerson实例33         /// </summary>34         /// <param name="name"></param>35         /// <returns></returns>36         public jQPerson setName(string name)37         {38 39             this.Name = name;40             return this;41         }42         /// <summary>43         /// 返回this,即jQPerson实例44         /// </summary>45         /// <param name="age"></param>46         /// <returns></returns>47         public jQPerson setAge(int age)48         {49 50             this.Age = age;51             return this;52         }53         /// <summary>54         /// 返回this,即jQPerson实例55         /// </summary>56         /// <param name="sex"></param>57         /// <returns></returns>58         public jQPerson setSex(string sex)59         {60 61             this.Sex = sex;62             return this;63         }64         /// <summary>65         /// 返回this,即jQPerson实例66         /// </summary>67         /// <param name="info"></param>68         /// <returns></returns>69         public jQPerson setInfo(string info)70         {71 72             this.Info = info;73             return this;74         }75         /// <summary>76         /// tostring输出键值对信息77         /// </summary>78         /// <returns></returns>79         public string toString()80         {81 82             return string.Format("Id:{0},Name:{1},Age:{2},Sex:{3},Info:{4}", this.Id, this.Name, this.Age, this.Sex, this.Info);83 84 85         }86 87     }88 }

  然后可以对上面进行测试,看方法连缀是否生效:

 1         /// <summary> 2         ///toString 的测试 3         ///</summary> 4         [TestMethod()] 5         public void toStringTest() 6         { 7             jQPerson target = new jQPerson(); 8             target.setId("2") 9                   .setName("jack")10                   .setAge(26)11                   .setSex("man")12                   .setInfo("ok");13             string expected = "Id:2,Name:jack,Age:26,Sex:man,Info:ok";14             string actual;15             actual = target.toString();16             Assert.AreEqual(expected, actual);17             //Assert.Inconclusive("验证此测试方法的正确性。");18         }

  可以看到,方法连缀确实可以让代码变得直观和简洁,增加可阅读性。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表