首页 > 编程 > C# > 正文

C#实现类似jQuery的方法连缀功能

2019-10-29 21:36:32
字体:
来源:转载
供稿:网友

这篇文章主要介绍了C#实现类似jQuery的方法连缀功能,可以简化语句,使代码变得清晰简单,感兴趣的小伙伴们可以参考一下

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. public class jQPerson 
  9. string Id { set; get; } 
  10. string Name { set; get; } 
  11. int Age { set; get; } 
  12. string Sex { set; get; } 
  13. string Info { set; get; } 
  14.  
  15. public jQPerson() 
  16.  
  17. /// <summary> 
  18. /// 设置ID,返回this,即jQPerson实例 
  19. /// </summary> 
  20. /// <param name="Id"></param> 
  21. /// <returns></returns> 
  22. public jQPerson setId(string Id) 
  23. this.Id = Id; 
  24. return this
  25. /// <summary> 
  26. /// 返回this,即jQPerson实例 
  27. /// </summary> 
  28. /// <param name="name"></param> 
  29. /// <returns></returns> 
  30. public jQPerson setName(string name) 
  31.  
  32. this.Name = name; 
  33. return this
  34. /// <summary> 
  35. /// 返回this,即jQPerson实例 
  36. /// </summary> 
  37. /// <param name="age"></param> 
  38. /// <returns></returns> 
  39. public jQPerson setAge(int age) 
  40.  
  41. this.Age = age; 
  42. return this
  43. /// <summary> 
  44. /// 返回this,即jQPerson实例 
  45. /// </summary> 
  46. /// <param name="sex"></param> 
  47. /// <returns></returns> 
  48. public jQPerson setSex(string sex) 
  49.  
  50. this.Sex = sex; 
  51. return this
  52. /// <summary> 
  53. /// 返回this,即jQPerson实例 
  54. /// </summary> 
  55. /// <param name="info"></param> 
  56. /// <returns></returns> 
  57. public jQPerson setInfo(string info) 
  58.  
  59. this.Info = info; 
  60. return this
  61. /// <summary> 
  62. /// tostring输出键值对信息 
  63. /// </summary> 
  64. /// <returns></returns> 
  65. public string toString() 
  66.  
  67. return string.Format("Id:{0},Name:{1},Age:{2},Sex:{3},Info:{4}"this.Id, this.Name, this.Age, this.Sex, this.Info); 
  68.  
  69.  
  70.  
  71. }  

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

 

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

通过以上操作可以看出,方法连缀功能的确使代码变得直观和简洁,增加可阅读性,大家不妨试一试。


注:相关教程知识阅读请移步到c#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表