程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# this用法系列(二) 通過this修飾符為原始類型擴展方法,

C# this用法系列(二) 通過this修飾符為原始類型擴展方法,

編輯:C#入門知識

C# this用法系列(二) 通過this修飾符為原始類型擴展方法,


定義一個靜態類,類中定義靜態方法,方法參數類型前加this修飾符,即可實現對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方法,轉化結果為Json字符串 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("&nbsp;", "")); } } public class User { public string ID { get; set; } public string Code { get; set; } public string Name { get; set; } } 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被擴展出了ToJson方法,用於轉化字符串 string json = users.ToJson(); // string類型被擴展出了ToJson方法,用於轉化對象 object obj = json.ToJson(); // string類型被擴展出了ToList方法,用於轉化List users = json.ToList<User>(); } catch (Exception ex) { Console.WriteLine(ex); } finally { Console.ReadLine(); } } } }

下一篇,分享this關鍵字之索引器用法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved