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

 更新时间:2015年11月10日 10:51:31   作者:JackWang-CUMT  
这篇文章主要介绍了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("验证此测试方法的正确性。");
   }

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

相关文章

  • C#简单快速的json组件fastJSON使用介绍

    C#简单快速的json组件fastJSON使用介绍

    JSON数据格式简洁,用于数据的持久化和对象传输很实用。最近在做一个Razor代码生成器,需要把数据库的表和列的信息修改后保存下来,想到用JSON序列化对象并保存,需要时再反序列化成对象会简单一些
    2012-11-11
  • WPF调用WindowsAPI实现屏幕录制

    WPF调用WindowsAPI实现屏幕录制

    这篇文章主要为大家详细介绍了WPF如何调用WindowsAPI实现屏幕录制,文中的示例代码讲解详细,对我们学习或工作有一定帮助,感兴趣的小伙伴可以了解一下
    2023-05-05
  • C#中尾递归的使用、优化及编译器优化

    C#中尾递归的使用、优化及编译器优化

    这篇文章主要介绍了C#中尾递归的使用、优化及编译器优化,本文讲解了递归运用、尾递归优化、编译器优化等内容,需要的朋友可以参考下
    2015-04-04
  • 从Request.Url中获取根网址的简单操作

    从Request.Url中获取根网址的简单操作

    这篇文章主要介绍了从Request.Url中获取根网址的简单操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#之字符串截取--Regex.Match使用

    C#之字符串截取--Regex.Match使用

    这篇文章主要介绍了C#之字符串截取--Regex.Match使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • c#使用热键实现程序窗口隐藏示例

    c#使用热键实现程序窗口隐藏示例

    下面我们将演示如何通过热键隐藏窗口,会用到DllImports of Win32 API、CallBacks/Delegates,定制事件与事件的句柄,大家参考使用吧友
    2014-01-01
  • 10个C#程序员经常用到的实用代码片段

    10个C#程序员经常用到的实用代码片段

    如果你是一个C#程序员,那么本文介绍的10个C#常用代码片段一定会给你带来帮助,从底层的资源操作,到上层的UI应用,这些代码也许能给你的开发节省不少时间。以下是原文:
    2015-09-09
  • C#版Windows服务安装卸载小工具

    C#版Windows服务安装卸载小工具

    这篇文章主要为大家推荐了一款C#版Windows服务安装卸载小工具,小巧灵活的控制台程序,希望大家喜欢,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • c#数据绑定之将datatabel的data添加listView

    c#数据绑定之将datatabel的data添加listView

    这篇文章主要介绍了c#将DataTabel的data添加ListView的示例,实现功能是通过响应UI Textbox 的值向ListView 绑定新添加的纪录。 ,需要的朋友可以参考下
    2014-04-04
  • C#与Java的MD5简单验证(实例代码)

    C#与Java的MD5简单验证(实例代码)

    下面小编就为大家带来一篇C#与Java的MD5简单验证(实例代码)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09

最新评论