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("验证此测试方法的正确性。");
   }

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

时间: 2015-11-07

jquery连缀语法如何实现

我想熟悉javascript的没有不知道jquery的吧,作为首屈一指的javascript框架,他的许多特性都让人兴奋不已,其中不得不提的就是特有的连缀书写语法了,那他到底只怎么实现的呢,我们也来实现一个吧. 复制代码 代码如下: sx.$=function(id){ var t=(typeof(id)=="string"?document.getElementById(id):id); t.text=function(){ return this.innerText?this.in

jQuery采用连缀写法实现的折叠菜单效果

本文实例讲述了jQuery采用连缀写法实现的折叠菜单效果.分享给大家供大家参考.具体如下: 这是一款jQuery采用连缀写法实现的折叠菜单效果,作者是位高手啊,自己用jQuery的连缀写法编写的,差不多是手风琴菜单,功能是实现了,不过有点担心效率,作者希望与高人一起交流进步. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-lz-fade-in-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUB

基于jQuery实现简单的折叠菜单效果

本文实例讲述了JQuery实现简单的折叠菜单效果代码.分享给大家供大家参考.具体如下: 运行效果截图如下: Html代码如下: <div class="box"> <p>菜单一</p> <ul> <li><a>1111</a></li> <li><a>1111</a></li> <li><a>1111</a>

JS实现适合于后台使用的动画折叠菜单效果

本文实例讲述了JS实现适合于后台使用的动画折叠菜单效果.分享给大家供大家参考.具体如下: 这是一款适合于后台使用的动画折叠菜单,代码超简,无jQuery,展开与折叠效果平滑.本演示中有两组菜单,向大家展示如何在一个网页中布局两个菜单,整体效果以及兼容性还算可以,希望在实际应用中不会出现什么问题. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-ht-control-animate-zd-menu-codes/ 具体代码如下: <!DOCTY

jquery+CSS3实现淘宝移动网页菜单效果

本文实例讲述了jquery+CSS3实现淘宝移动网页菜单效果.分享给大家供大家参考.具体如下: 这是一款基于jquery+CSS3实现的淘宝移动网页菜单,其实这个菜单动画并不复杂,只有缩放和位移.难点是用了扇形结构,而且还要实现扇形的链接区域,这个就费脑筋了,最后采用了传统的图片map来做热区,效果还不错.相信肯定有更好的解决方法. 先来看看运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-css3-taobao-phone-menu-c

jQuery实现简单漂亮的Nav导航菜单效果

本文实例讲述了jQuery实现简单漂亮的Nav导航菜单效果.分享给大家供大家参考,具体如下: 自己写的一个简单的导航菜单,先看效果: 鼠标悬浮时菜单项向上移动成蓝底白字,点击之后底部会有蓝条表示当前选中项. 页面代码,菜单的每一项都是一个 div ,其中包括一个 ul 用来放置显示文字等,另一个 div 则是底部的蓝条,需要给第一项和最后一项设置不同的 class ,样式需要用到: <div id="nav"> <div class="navItem ind

基于jQuery实现的向下滑动二级菜单效果代码

本文实例讲述了基于jQuery实现的向下滑动二级菜单效果代码.分享给大家供大家参考.具体如下: 这是一款使用jQuery制作向下滑动的二级菜单,本二级菜单带有动画效果,而且比较流畅,鼠标放在一级菜单上,就可以向下滑出二级子菜单,相对实用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-show-down-style-menu-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD

jQuery+CSS实现的网页二级下滑菜单效果

本文实例讲述了jQuery+CSS实现的网页二级下滑菜单效果.分享给大家供大家参考.具体如下: 这是一款简洁型的 jQuery+CSS网页二级下滑菜单,练手写的,有需要的自己拿去美化吧,基本的动画效果和菜单下滑效果和渐变效果已经做出来了,在IE下表现不错,在火狐下发现菜单有闪烁现象,有空会继续修正,感谢大家捧场哦. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-css-web-2level-menu-style-codes/ 具体

jQuery实现固定在网页顶部的菜单效果代码

本文实例讲述了jQuery实现固定在网页顶部的菜单效果代码.分享给大家供大家参考.具体如下: 这是一款基于jQuery的固定在页面顶部的菜单,获取要定位元素距离浏览器顶部的距离,滚动条的滑动距离大于等于定位元素距离浏览器顶部的距离,就固定,反之就不固定. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-top-fixed-menu-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W

JS+CSS实现的竖向简洁折叠菜单效果代码

本文实例讲述了JS+CSS实现的竖向简洁折叠菜单效果代码.分享给大家供大家参考,具体如下: 这是一款JS+CSS竖向简洁的折叠菜单,支持三级分类,红色垂直型,个人感觉非常棒,希望大家喜欢. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-simple-zd-menu-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "

jQuery实现的背景动态变化导航菜单效果

本文实例讲述了jQuery实现的背景动态变化导航菜单效果.分享给大家供大家参考.具体如下: 这里介绍一款使用jQuery插件制作完成的导航菜单,一大特点是,菜单的背景有动态效果,与使用的背景图片完全变换,动态效果是在鼠标悬停时出现,也就是把鼠标放在菜单上的时候,背景即开始滚动起来,看上去漂亮极了,而且兼容性也是相当不错的,推荐给网页设计者使用. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-bg-cha-menu-nav-code