C#中this指針的用法示例
本文實(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、限定被相似的名稱隱藏的成員
主要代碼如下:
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ù)傳遞到別的方法中
主要代碼如下:
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、聲明索引器
主要代碼如下:
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)。
- C#中this用法系列(二) 通過(guò)this修飾符為原始類型擴(kuò)展方法
- C#基礎(chǔ)知識(shí)之this關(guān)鍵字介紹
- C#中this的用法集錦
- C#使用this關(guān)鍵字實(shí)現(xiàn)串聯(lián)構(gòu)造函數(shù)調(diào)用方法
- C#中this的使用實(shí)例分析
- c#訪問(wèn)this關(guān)鍵字和base關(guān)鍵字示例
- C# 參考之訪問(wèn)關(guān)鍵字:base、this
- c#多線程中Lock()關(guān)鍵字的用法小結(jié)
- C# dynamic關(guān)鍵字的使用方法
- C# this關(guān)鍵字的四種用法
相關(guān)文章
C#根據(jù)年月日計(jì)算星期幾的函數(shù)小例子
這篇文章介紹了C#根據(jù)年月日計(jì)算星期幾的函數(shù)小例子,有需要的朋友可以參考一下2013-07-07
C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換示例
這篇文章主要介紹了C# .net實(shí)現(xiàn)貨幣轉(zhuǎn)換,其中包含了try catch、switch語(yǔ)句的運(yùn)用,對(duì)于C#初學(xué)者有一定的借鑒價(jià)值,需要的朋友可以參考下2014-08-08
舉例講解C#中自動(dòng)實(shí)現(xiàn)的屬性
這篇文章主要介紹了C#中自動(dòng)實(shí)現(xiàn)的屬性,包括使用自動(dòng)實(shí)現(xiàn)的屬性實(shí)現(xiàn)輕量類的方法,需要的朋友可以參考下2016-01-01
c#使用file.copy實(shí)現(xiàn)文件備份示例
需要把D盤(pán)Source文件夾中的所有名稱包含"LTE"的子文件夾Copy到E盤(pán)的Backup文件中,實(shí)現(xiàn)特定文件夾每天備份,下面使用file.copy實(shí)現(xiàn)一下這個(gè)功能2014-03-03

