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修饰符为原始类型扩展方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!