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; }
        }
    }
  • 相关阅读:
    Java WebService异构系统通信的原理及特点:SOAP与WSDL
    jenkins下拉框选择构建环境
    vue中的hash与history
    一行代码轻松搞定企微内嵌h5调用原生api不生效问题
    开源绘图工具plantUML入门教程(常用于画时序图等)
    什么是持续集成、持续交付、持续部署(CI/CD)?
    一篇文章了解CI/CD管道全流程
    开源免费的SSH工具推荐:electerm(推荐)、Finalshell
    Oracle数据库设置表空间自动扩展(解决因表空间不足引起的ORA01653: unable to extend table错误)
    测试工作中浏览器F12工具简单使用介绍
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/14073896.html
Copyright © 2011-2022 走看看