• C#——this关键字(1)


    在学习C#的时候,老师讲的示例中有一些地方用到了this关键字,猛哥在视频中也略微解释了一下,并未深讲,所以直到学完,我在这一块依旧有着疑问:this这个关键字到底怎么用呢?

    所以今天下午由找了些资料看了看,不知道自己的理解是否正确,望各位网友指导一下。

    先从微软官方的C#编程指南中摘抄一段:

    以下是 this 的常用用途:

    • 限定被相似的名称隐藏的成员

    • 将对象作为参数传递到其他方法

    • 声明索引器

    ---------------------------------------------------------

    对于第一个用途限定被相似的名称隐藏的成员我也刚刚有了一点头绪,我的语言组织能力较差,我们通过一个示例来看看:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace @this
    {
        class Program
        {
            static void Main(string[] args)
            {
                Student stu = new Student();
                stu.GetMessage("Mark", 1);
                Console.WriteLine("My name is {0}.My ID number is {1}.",stu.Name,stu.ID);
            }
        }
    
        class Student
        {
            public string  Name { get; set; }
            public int ID { get; set; }
    
            public void GetMessage(string Name,int ID)
            {
                this.Name = Name;
                this.ID = ID;
            }
        }
    }
    

      

      this.Name = Name; //这里的Name就是传进来的Name

         this.ID = ID;//这里的ID就是传进来的ID

    这里的this就是指在这个Student类里面创建的一个实例(或者说用this替代了在这个类里创建的一个实例)

    更正:

    都怪我学术不精,自己对这一块理解错了,多亏了网友@ 雨夜潇湘在评论区评论指出我的问题所在

    红色的是我又学习后总结的,应该无错了

    -----------------------------------------------------------------------------------------

    例子中的this实际上是代替了stu,在方法体内完成了赋值等操作

    如果有个stu2

    那么此时的this又代替了stu2在方法体内完成了赋值等操作

    引用 雨夜潇湘的总结:

    我们所说的this代表当前对象是指运行时谁调用了其成员谁就是this。

    或者来句死的:谁点出成员的,谁就是this。this代表的是当前这个类型运行时的一个实例

    -----------------------------------------------------------------------------------------

    ------------------------------------------------------------------------------------------

    To be Continued!

    ------------------------------------------------------------------------------------------

    希望广大网友指出问题所在,指出我哪里理解错了,共同交流,共同进步!

  • 相关阅读:
    BZOJ 4033: [HAOI2015]树上染色 (树形DP)
    BZOJ 1820: [JSOI2010]Express Service 快递服务 DP
    BZOJ 4664: Count 插块DP
    BZOJ 1899: [Zjoi2004]Lunch 午餐 DP
    BZOJ 4559 [JLoi2016]成绩比较 (DP+拉格朗日插值)
    BZOJ1485 [HNOI2009] 有趣的数列 (卡特兰数)
    BZOJ 2111 / Luogu P2606 [ZJOI2010]排列计数
    20190915模拟赛
    深海机器人问题
    太空飞行计划问题
  • 原文地址:https://www.cnblogs.com/GeekDragon/p/5810743.html
Copyright © 2020-2023  润新知