C#——this关键字(一)
//我的C#是跟着猛哥(刘铁猛)(算是我的正式老师)《C#语言入门详解》学习的,微信上猛哥也给我讲解了一些不懂得地方,对于我来说简直是一笔巨额财富,难得良师!
在学习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替代了在这个类里创建的一个实例)
我们把代码改一改:
public void GetMessage(string Name,int ID) { Student stu = new Student(); stu.Name = Name; stu.ID = ID; }
我们在这个类里创建了一个叫stu的实例,并且通过他为“他自己”赋值,运行后程序完全一样
-----------------------------------------------------------------------------------------
对这第一个用途做一个总结:
说白了,可以认为this给我们创造了一个实例,然后用这个实例来进行一系列的操作
------------------------------------------------------------------------------------------
To be Continued!
------------------------------------------------------------------------------------------
希望广大网友指出问题所在,指出我哪里理解错了,共同交流,共同进步!