欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中this用法系列(二) 通过this修饰符为原始类型扩展方法

程序员文章站 2022-03-26 08:35:19
定义一个静态类,类中定义静态方法,方法中参数类型前边加上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修饰符为原始类型扩展方法,希望对大家有所帮助