C#中this用法系列(二) 通过this修饰符为原始类型扩展方法
程序员文章站
2022-06-22 15:55:11
定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展
示例如
namespace demo{
// 这里的类必...
定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展
示例如
namespace demo{ // 这里的类必须为静态类 public static class json { // 方法为静态方法 // this修饰符后边是string类型,即为string类型扩展出了tojson方法 public static object tojson(this string json) { return json == null ? null : jsonconvert.deserializeobject(json); } // this修饰符后边类型为object,即为object类型扩展出了tojson方法 public static string tojson(this object obj) { var timeconverter = new isodatetimeconverter { datetimeformat = "yyyy-mm-dd hh:mm:ss" }; return jsonconvert.serializeobject(obj, timeconverter); } public static string tojson(this object obj, string datetimeformats) { var timeconverter = new isodatetimeconverter { datetimeformat = datetimeformats }; return jsonconvert.serializeobject(obj, timeconverter); } public static t toobject<t>(this string json) { return json == null ? default(t) : jsonconvert.deserializeobject<t>(json); } public static list<t> tolist<t>(this string json) { return json == null ? null : jsonconvert.deserializeobject<list<t>>(json); } public static datatable totable(this string json) { return json == null ? null : jsonconvert.deserializeobject<datatable>(json); } public static jobject tojobject(this string json) { return json == null ? jobject.parse("{}") : jobject.parse(json.replace(" ", "")); } } public class user { public string id { get; set; } public string code { get; set; } public string name { get; set; } } class program { static void main(stringtry { list<user> users = new list<user>new user{id="1",code="zs",name="张三"}, new user{id="2",code="ls",name="李四"} }; // list被扩展出了tojson方法,用于转化字符串 string json = users.tojson(); // string类型被扩展出了tojson方法,用于转化对象 object obj = json.tojson(); // string类型被扩展出了tolist方法,用于转化list users = json.tolist<user>(); // string类型转化datatable datatable dt=json.totable(); } catch (exception ex) { console.writeline(ex); } finally { console.readline(); } } } }
以上所述是小编给大家介绍的c#中this用法系列(二) 通过this修饰符为原始类型扩展方法,希望对大家有所帮助
上一篇: getters传递参数(Vuex)
下一篇: 如何用PS后期调出电影镜头复古冷青色调?