這篇文章主要介紹了C#中this指針的用法,對(duì)初學(xué)者而言是非常重要的概念,必須加以熟練掌握,需要的朋友可以參考下。
本文實(shí)例展示了C#中this指針的用法,對(duì)于初學(xué)者進(jìn)一步牢固掌握C#有很大幫助,具體內(nèi)容如下:
一、this指針是什么:
這里有一些面向?qū)ο缶幊痰母拍钚枰f(shuō)明:類(Class)的概念和對(duì)象(Object)的概念類是對(duì)事物概括,也是C#編碼時(shí)所有代碼歸屬的基本單位;而對(duì)象是對(duì)類的實(shí)例化,也就是C#里new方法的返回值。寫(xiě)代碼是不能直接用操作類,而只能先實(shí)例化類,然后我們用這個(gè)類被實(shí)例化后的對(duì)象。通俗一些的說(shuō)明是,“類”好比是“人”的概念,而我們把類實(shí)例化后,就成為單個(gè)人的“對(duì)象”,例如:“張三”。this就是你的代碼所歸屬的“類”的實(shí)例化后的“對(duì)象”,也叫當(dāng)前對(duì)象。
二、this指針的幾種用法:
1、限定被相似的名稱隱藏的成員
主要代碼如下:
| 123456789101112 | public class ThisName { public string name = "張三"; public int num = 55; public ThisName() { } public void GetThisName(string name, int num) { name = this.name;//調(diào)取全局變量name num = this.num;//調(diào)取全局變量num HttpContext.Current.Response.Write("參數(shù)name的值為:"+name+";參數(shù)num的值為:"+num);//輸出結(jié)果為"參數(shù)name的值為張三;參數(shù)num值為:55" } } |
2、將對(duì)象作為參數(shù)傳遞到別的方法中
主要代碼如下:
| 1234567891011121314151617181920212223 | public class ThisFF { public ThisFF() { } public string shuju() { return "This指針當(dāng)做方法傳遞"; } public void f1(ThisFF ff) { HttpContext.Current.Response.Write(ff.shuju()); } public void f() { f1(this);//this在這里可以理解為 ThisFF ff=news ThisFF();當(dāng)前類的實(shí)例 } } ThisFF ff=news ThisFF();//方法實(shí)例 ff.f();//調(diào)用方法 輸出結(jié)果為: This指針當(dāng)做方法傳遞 |
3、聲明索引器
主要代碼如下:
| 123456 | PRivate int _Sy; public int this[int sy] { get { return _Sy;} set { sy=_Sy;} } |
三、總結(jié):
1.this關(guān)鍵字引用被訪問(wèn)成員所在的當(dāng)前實(shí)例。靜態(tài)成員函數(shù)沒(méi)有this指針。this關(guān)鍵字可以用來(lái)從構(gòu)造函數(shù),實(shí)例方法和實(shí)例化訪問(wèn)器中訪問(wèn)成員。 不能在靜態(tài)方法。靜態(tài)屬性訪問(wèn)器或者域聲明的變量初始化程序中使用this關(guān)鍵字,這將會(huì)產(chǎn)生錯(cuò)誤。
2.在類的構(gòu)造函數(shù)中出現(xiàn)的this作為一個(gè)值類型表示對(duì)正在構(gòu)造的對(duì)象本身的引用。
3.在類的方法中出現(xiàn)this作為一個(gè)值類型表示對(duì)調(diào)用該方法的對(duì)象的引用。
4.在結(jié)構(gòu)的構(gòu)造函數(shù)中出現(xiàn)的this作為一個(gè)變量類型表示對(duì)正在構(gòu)造的結(jié)構(gòu)的引用。
5.在結(jié)構(gòu)的方法中出現(xiàn)的this作為一個(gè)變量類型表示對(duì)調(diào)用該方法的結(jié)構(gòu)。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注