zoukankan      html  css  js  c++  java
  • 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 {
     9     public class jQPerson
    10     {
    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         }

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

  • 相关阅读:
    字体图标的制作
    vs code 本地调试配置
    瀑布流
    web组件化开发第一天
    超时调用和间歇调用
    递归 闭包
    继承
    面向对象的程序设计
    function类型
    Date类型
  • 原文地址:https://www.cnblogs.com/isaboy/p/csharp_method_like_jquery.html
Copyright © 2011-2022 走看看