zoukankan      html  css  js  c++  java
  • C# this关键字的3种用法

    用法一  this代表当前类的实例对象
    namespace Demo
    {
        public class Test
        {
            private string scope = "全局变量";
            public string getResult()
            {
                string scope = "局部变量";
           // this代表Test的实例对象
           // 所以this.scope对应的是全局变量
            // scope对应的是getResult方法内的局部变量
                return this.scope + "-" + scope;
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Test test = new Test();
                    Console.WriteLine(test.getResult());
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                finally
                {
                    Console.ReadLine();
                }
    
            }
        }
    }
    用法二  用this串联构造函数
    namespace Demo
    {
        public class Test
        {
            public Test()
            {
                Console.WriteLine("无参构造函数");
            }
            // this()对应无参构造方法Test()
         // 先执行Test(),后执行Test(string text)
            public Test(string text) : this()
            {
                Console.WriteLine(text);
                Console.WriteLine("有参构造函数");
            }
        }
    
        class Program
        {
            static void Main(string[] args)
            {
                try
                {
                    Test test = new Test("张三");
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                finally
                {
                    Console.ReadLine();
                }
            }
        }
    }
    用法三  为原始类型扩展方法
    namespace Demo
    {
        public static class Extends
        {
         // 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(" ", ""));
            }
        }
    
        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; }
        }
    }
  • 相关阅读:
    关于调试 SharePoint 2010 中的爬网问题的疑难解答提示
    JS 获取 本周、本月、本季度、本年、上月、上周、上季度、去年
    jqGrid动态列
    【原创】博客“缘”
    讀取內部網站8/22
    開啟VS2005速度慢8/25
    仲秋節快樂
    外部表不是預期的格式8/28
    要考試10/17
    DataTable導入Excel 8/27
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/14073896.html
Copyright © 2011-2022 走看看