• 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!

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

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

  • 相关阅读:
    TypeError: can't compare offset-naive and offset-aware datetimes bugfix
    pg_restore数据库恢复指令
    第四十期百度技术沙龙笔记整理
    JS事件模型小结
    matlab Newton method
    Markdown 语法的简要规则
    iOS社交分享Twitter、Facebook、拷贝到剪切板、LINE、及邮件
    Linux系统调用过程分析
    iOS自己定义返回button(不影响返回手势)
    MAVEN项目模块化
  • 原文地址:https://www.cnblogs.com/GeekDragon/p/5810743.html
Copyright © 2020-2023  润新知