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

C# 用this修飾符為原始類型擴展辦法

編輯:C#入門知識

C# 用this修飾符為原始類型擴展辦法。本站提示廣大學習愛好者:(C# 用this修飾符為原始類型擴展辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是C# 用this修飾符為原始類型擴展辦法正文


定義一個靜態類,類中定義靜態辦法,辦法中參數類型前邊加上this修飾符,即可完成對this所指向類的擴展。

有點相似js中經過類的原型去擴展辦法,類的實例對象就可以經過對象.辦法名去調用

示例如  

 

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("&nbsp;", ""));
        }
    }

    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辦法,用於轉化json字符串
                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();
            }
        }
    }

    public class User
    {
        public string ID { get; set; }
        public string Code { get; set; }
        public string Name { get; set; }
    }
}

 

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