当前位置: 移动技术网 > IT编程>开发语言>c# > C#中this用法系列(二) 通过this修饰符为原始类型扩展方法

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

2019年07月18日  | 移动技术网IT编程  | 我要评论

定义一个静态类,类中定义静态方法,方法中参数类型前边加上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修饰符为原始类型扩展方法,希望对大家有所帮助

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网