欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-11-22 11:34:40
jquery的方法连缀使用起来非常方便,可以简化语句,让代码变得清晰简洁。那c#的类方法能不能也实现类似的功能呢?基于这样的疑惑,研究了一下jquery的源代码,发现就是需...

jquery的方法连缀使用起来非常方便,可以简化语句,让代码变得清晰简洁。那c#的类方法能不能也实现类似的功能呢?基于这样的疑惑,研究了一下jquery的源代码,发现就是需要方法连缀的函数方法最后返回对象本身即可。既然javascript可以,c#应该也是可以的。
为了验证,编写一个jqperson类,然后用方法连缀对其id,name,age等属性进行设置,请看下面的代码:

 using system;
 using system.collections.generic;
 using system.linq;
 using system.text;
 using system.threading.tasks;
 
 namespace csharpmethodlikejquery
 {
  public class jqperson
  {
   string id { set; get; }
   string name { set; get; }
   int age { set; get; }
   string sex { set; get; }
   string info { set; get; }
 
   public jqperson()
   {
 
   }
   /// <summary>
   /// 设置id,返回this,即jqperson实例
   /// </summary>
   /// <param name="id"></param>
   /// <returns></returns>
   public jqperson setid(string id)
   {
    this.id = id;
    return this;
   }
   /// <summary>
   /// 返回this,即jqperson实例
   /// </summary>
   /// <param name="name"></param>
   /// <returns></returns>
   public jqperson setname(string name)
   {
 
    this.name = name;
    return this;
   }
   /// <summary>
   /// 返回this,即jqperson实例
   /// </summary>
   /// <param name="age"></param>
   /// <returns></returns>
   public jqperson setage(int age)
   {
 
    this.age = age;
    return this;
   }
   /// <summary>
   /// 返回this,即jqperson实例
   /// </summary>
   /// <param name="sex"></param>
   /// <returns></returns>
   public jqperson setsex(string sex)
   {
 
    this.sex = sex;
    return this;
   }
   /// <summary>
   /// 返回this,即jqperson实例
   /// </summary>
   /// <param name="info"></param>
   /// <returns></returns>
   public jqperson setinfo(string info)
   {
 
    this.info = info;
    return this;
   }
   /// <summary>
   /// tostring输出键值对信息
   /// </summary>
   /// <returns></returns>
   public string tostring()
   {
 
    return string.format("id:{0},name:{1},age:{2},sex:{3},info:{4}", this.id, this.name, this.age, this.sex, this.info);
 
 
   }
 
  }
 } 

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

/// <summary>
   ///tostring 的测试
   ///</summary>
   [testmethod()]
   public void tostringtest()
   {
    jqperson target = new jqperson();
    target.setid("2")
     .setname("jack")
     .setage(26)
     .setsex("man")
     .setinfo("ok");
    string expected = "id:2,name:jack,age:26,sex:man,info:ok";
    string actual;
    actual = target.tostring();
    assert.areequal(expected, actual);
    //assert.inconclusive("验证此测试方法的正确性。");
   }

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