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("验证此测试方法的正确性。"); }
通过以上操作可以看出,方法连缀功能的确使代码变得直观和简洁,增加可阅读性,大家不妨试一试。
上一篇: HTML图像标签img和源属性src及Alt属性、宽高、对齐
下一篇: C#超实用代码段合集