C#中this用法系列(二) 通过this修饰符为原始类型扩展方法
定义一个静态类,类中定义静态方法,方法中参数类型前边加上this修饰符,即可实现对参数类型的方法扩展
示例如
namespaceDemo{
//这里的类必须为静态类
publicstaticclassJson
{
//方法为静态方法
//this修饰符后边是string类型,即为string类型扩展出了ToJson方法
publicstaticobjectToJson(thisstringJson)
{
returnJson==null?null:JsonConvert.DeserializeObject(Json);
}
//this修饰符后边类型为object,即为object类型扩展出了ToJson方法
publicstaticstringToJson(thisobjectobj)
{
vartimeConverter=newIsoDateTimeConverter{DateTimeFormat="yyyy-MM-ddHH:mm:ss"};
returnJsonConvert.SerializeObject(obj,timeConverter);
}
publicstaticstringToJson(thisobjectobj,stringdatetimeformats)
{
vartimeConverter=newIsoDateTimeConverter{DateTimeFormat=datetimeformats};
returnJsonConvert.SerializeObject(obj,timeConverter);
}
publicstaticTToObject<T>(thisstringJson)
{
returnJson==null?default(T):JsonConvert.DeserializeObject<T>(Json);
}
publicstaticList<T>ToList<T>(thisstringJson)
{
returnJson==null?null:JsonConvert.DeserializeObject<List<T>>(Json);
}
publicstaticDataTableToTable(thisstringJson)
{
returnJson==null?null:JsonConvert.DeserializeObject<DataTable>(Json);
}
publicstaticJObjectToJObject(thisstringJson)
{
returnJson==null?JObject.Parse("{}"):JObject.Parse(Json.Replace(" ",""));
}
}
publicclassUser{
publicstringID{get;set;}
publicstringCode{get;set;}
publicstringName{get;set;}
}
classProgram
{
staticvoidMain(stringtry
{
List<User>users=newList<User>newUser{ID="1",Code="zs",Name="张三"},
newUser{ID="2",Code="ls",Name="李四"}
};
//List被扩展出了ToJson方法,用于转化字符串
stringjson=users.ToJson();
//string类型被扩展出了ToJson方法,用于转化对象
objectobj=json.ToJson();
//string类型被扩展出了ToList方法,用于转化List
users=json.ToList<User>();
//string类型转化DataTable
DataTabledt=json.ToTable();
}
catch(Exceptionex)
{
Console.WriteLine(ex);
}
finally
{
Console.ReadLine();
}
}
}
}
以上所述是小编给大家介绍的C#中this用法系列(二)通过this修饰符为原始类型扩展方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!