//我的C#是跟著猛哥(劉鐵猛)(算是我的正式老師)《C#語言入門詳解》學習的,微信上猛哥也給我講解了一些不懂得地方,對於我來說簡直是一筆巨額財富,難得良師! 在學習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!
------------------------------------------------------------------------------------------
希望廣大網友指出問題所在,指出我哪裡理解錯了,共同交流,共同進步!