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

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

最新文章

  1. HTML5学习总结-01 开发环境和历史
  2. Swift定义单例
  3. P235 实战练习(集合类2)、摇奖程序和验证码(修改版)
  4. awk 统计数据在文件中的出现次数
  5. 微信公众平台开发 ACCESS TOKEN
  6. 编写你的第一个 Django 程序 第2部分
  7. IE8+等兼容、360调用webkit内核小记
  8. SRM 609(1-250pt, 1-500pt)
  9. iframe 元素
  10. SQL Server 触发器的修改与删除
  11. jquery之效果操作
  12. SpringCloud的应用发布(四)vmvare+linux,防火墙和selinux
  13. 常用SQL Server命令(持续) | Commonly used SQL Server command list (Cont&#39;)
  14. Activiti流程变量五步曲 ——by fightingKing
  15. Luogu 2173 [ZJOI2012]网络 - LCT
  16. 【Python3】端口占用监测的程序
  17. HBase 架构与工作原理2 - HBase 组件
  18. MYSQL用户操作管理大杂烩
  19. python 视频配音、剪辑
  20. 网络数据包分析 网卡Offload

热门文章

  1. CSS裁剪clip
  2. java中线程存活和线程执行的问题!
  3. Dijkstra算法(一)之 C语言详解
  4. c#Dictionary键值对的使用
  5. 基于HT for Web的3D拓扑树的实现
  6. Maven提高篇系列之(四)——使用Profile
  7. Stream Player control
  8. 开始MS SQL Server 2016之旅
  9. 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错
  10. 如何在MVC_WebAPI项目中的APIController帮助页面添加Web测试工具测试