this指針是什麼:編程
這裏有一些面向對象編程的概念須要說明:類(Class)的概念和對象(Object)的概念
類是對事物歸納,也是C#編碼時全部代碼歸屬的基本單位;而對象是對類的實例化,也就是C#裏new方法的返回值。寫代碼是不能直接用操做類,而只能先實例化類,而後咱們用這個類被實例化後的對象。
通俗一些的說明是,「類」比如是「人」的概念,而咱們把類實例化後,就成爲單我的的「對象」,例如:「張三」。
this就是你的代碼所歸屬的「類」的實例化後的「對象」,也叫當前對象。函數
this指針的幾種用法:this
一、限定被類似的名稱隱藏的成員編碼
代碼以下指針
public class ThisName { public string name = "張三"; public int num = 55; public ThisName() { } public void GetThisName(string name, int num) { name = this.name;//調取全局變量name num = this.num;//調取全局變量num HttpContext.Current.Response.Write("參數name的值爲:"+name+";參數num的值爲:"+num);//輸出結果爲"參數name的值爲張三;參數num值爲:55" } }
二、將對象做爲參數傳遞到別的方法中對象
代碼以下blog
public class ThisFF { public ThisFF() { } public string shuju() { return "This指針當作方法傳遞"; } public void f1(ThisFF ff) { HttpContext.Current.Response.Write(ff.shuju()); } public void f() { f1(this);//this在這裏能夠理解爲 ThisFF ff=news ThisFF();當前類的實例 } } ThisFF ff=news ThisFF();//方法實例 ff.f();//調用方法 輸出結果爲: This指針當作方法傳遞
三、聲明索引器索引
private int _Sy; public int this[int sy] { get { return _Sy;} set { sy=_Sy;} }
總結:get
1.this關鍵字引用被訪問成員所在的當前實例。靜態成員函數沒有this指針。this關鍵字能夠用來從構造函數,實例方法和實例化訪問器中訪問成員。
不能在靜態方法。靜態屬性訪問器或者域聲明的變量初始化程序中使用this關鍵字,這將會產生錯誤。 string
2.在類的構造函數中出現的this做爲一個值類型表示對正在構造的對象自己的引用。
3.在類的方法中出現this做爲一個值類型表示對調用該方法的對象的引用。
4.在結構的構造函數中出現的this做爲一個變量類型表示對正在構造的結構的引用。
5.在結構的方法中出現的this做爲一個變量類型表示對調用該方法的結構。