鏈式程式設計模式
阿新 • • 發佈:2018-11-29
鏈式程式設計模式確切的說是一種擴充套件模式方法,它通過擴充套件方法實現功能的不斷擴充套件新增,這種擴充套件相當於前一個輸出結果是下一個方法的輸入操作。
1、它只與this 關鍵詞有關,與檔案類名無關,但類名必須是靜態類
public static class ExtendOK { // string型別擴充套件ToJson方法 public static object ToJson(this string Json) { return Json == null ? null : JsonConvert.DeserializeObject(Json); } // 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(" ", "")); } }
2、呼叫操作
class Program { static void Main(string[] args) { try { List<User> users = new List<User>{ new User{ID="1",Code="zs",Name="張三"}, new User{ID="2",Code="ls",Name="李四"} }; // list轉化json字串 string json = users.ToJson(); // string轉化List users = json.ToList<User>(); // string轉化DataTable DataTable dt = json.ToTable(); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.ReadLine(); } } } public class User { public string ID { get; set; } public string Code { get; set; } public string Name { get; set; } }