zoukankan      html  css  js  c++  java
  • C# 关键字:this

    1、代表当前类的对象

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Teacher t = new Teacher();
     6             Console.WriteLine(t.getResult());
     7 
     8 
     9             Console.ReadKey();
    10         }
    11     }
    12     public class Teacher
    13     {
    14         private string scope = "全局变量";
    15         public string getResult()
    16         {
    17             string scope = "局部变量";
    18             // this代表Teacher类的对象
    19             // 所以this.scope对应的是全局变量
    20             // scope对应的是getResult方法内的局部变量
    21             return this.scope + "-" + scope;
    22         } 
    23     } 

    运行结果:

    2、显式的调用自己的构造函数

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Teacher t = new Teacher("张三");  
     6 
     7             Console.ReadKey();
     8         }
     9     }
    10     public class Teacher
    11     {
    12         public Teacher()
    13         {
    14             Console.WriteLine("无参构造函数");
    15         }
    16         // this()对应无参构造方法Teacher()
    17         // 先执行Teacher(),后执行Teacher(string text)
    18         public Teacher(string text) : this()
    19         {
    20             Console.WriteLine(text);
    21             Console.WriteLine("有参构造函数");
    22         } 
    23     } 

    运行结果:

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             Teacher t2 = new Teacher("张三", 18, '男');
     6             t2.SayHi();
     7 
     8             Console.ReadKey();
     9         }
    10     }
    11       
    12     class Teacher
    13     {
    14         public string Name { get; set; }
    15         public int Age { get; set; }
    16         public char Gender { get; set; }
    17 
    18         public int Chinese { get; set; }
    19         public int Math { get; set; }
    20         public int English { get; set; }
    21 
    22 
    23         public Teacher(string name, int age, char gender, int chinese, int math, int english)
    24         {
    25             this.Name = name;
    26             this.Age = age;
    27             this.Gender = gender;
    28             this.Chinese = chinese;
    29             this.Math = math;
    30             this.English = english;
    31         } 
    32 
    33         public Teacher(string name, int age, char gender)  : this(name, age, gender, 0, 0, 0)
    34         { } 
    35 
    36         public void SayHi()
    37         {
    38             Console.WriteLine("我叫{0},今年{1}岁了,我是{2}生", this.Name, this.Age, this.Gender);
    39         } 
    40     }

    运行结果:

    3、为原始类型扩展方法

       static class Extends
        {
            public static object ToJson(this string Json)
            {
                return Json == null ? null : JsonConvert.DeserializeObject(Json);
            }
        }

    4、索引器

     1     class Program
     2     {
     3         static void Main(string[] args)
     4         {
     5             int[] nums = { 1, 2, 3, 4, 5 };
     6             Console.WriteLine(nums[2]);
     7             Person p = new Person();
     8             p.Numbers = new int[] { 1, 2, 3, 4, 5 };
     9 
    10             p[0] = 1;
    11             p[1] = 2;
    12             p[2] = 3;
    13             p[3] = 4;
    14             Console.WriteLine(p[0]);
    15             Console.WriteLine(p[1]);
    16 
    17             p["张三"] = "嘿嘿嘿";
    18             p["李四"] = "呵呵呵";
    19             p["王五"] = "哈哈哈";
    20             Console.WriteLine(p[3]);
    21 
    22             Console.ReadKey();
    23         }
    24     }
    25 
    26     class Person
    27     {
    28         public int[] Numbers { get; set; } = new int[5];
    29 
    30         //索引器 让对象以索引的方式操作数组
    31         public int this[int index]
    32         {
    33             get { return Numbers[index]; }
    34             set { Numbers[index] = value; }
    35         } 
    36 
    37         Dictionary<string, string> dic = new Dictionary<string, string>();
    38         public string this[string index]
    39         {
    40             get { return dic[index]; }
    41             set { dic[index] = value; }
    42         }
    43     }
  • 相关阅读:
    python打包exe pyinstaller 简单使用
    加群请回答两个问题,谢谢合作!
    8080_32位汇编-通用寄存器
    学习8086汇编的准备
    HelloWorld生命周期
    我为什么要学习《深入理解计算机系统》这本书?
    MySQL_1.0
    C++命名空间的玩法
    Linux的 7个运行级别
    Linux基础命令2.0
  • 原文地址:https://www.cnblogs.com/zhaoyl9/p/13196225.html
Copyright © 2011-2022 走看看