C#中this指針的用法示例
本文實(shí)例展示了C#中this指針的用法,對于初學(xué)者進(jìn)一步牢固掌握C#有很大幫助,具體內(nèi)容如下:
一、this指針是什么:
這里有一些面向?qū)ο缶幊痰母拍钚枰f明:類(Class)的概念和對象(Object)的概念
類是對事物概括,也是C#編碼時所有代碼歸屬的基本單位;而對象是對類的實(shí)例化,也就是C#里new方法的返回值。寫代碼是不能直接用操作類,而只能先實(shí)例化類,然后我們用這個類被實(shí)例化后的對象。
通俗一些的說明是,“類”好比是“人”的概念,而我們把類實(shí)例化后,就成為單個人的“對象”,例如:“張三”。
this就是你的代碼所歸屬的“類”的實(shí)例化后的“對象”,也叫當(dāng)前對象。
二、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、將對象作為參數(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)鍵字引用被訪問成員所在的當(dāng)前實(shí)例。靜態(tài)成員函數(shù)沒有this指針。this關(guān)鍵字可以用來從構(gòu)造函數(shù),實(shí)例方法和實(shí)例化訪問器中訪問成員。
不能在靜態(tài)方法。靜態(tài)屬性訪問器或者域聲明的變量初始化程序中使用this關(guān)鍵字,這將會產(chǎn)生錯誤。
2.在類的構(gòu)造函數(shù)中出現(xiàn)的this作為一個值類型表示對正在構(gòu)造的對象本身的引用。
3.在類的方法中出現(xiàn)this作為一個值類型表示對調(diào)用該方法的對象的引用。
4.在結(jié)構(gòu)的構(gòu)造函數(shù)中出現(xiàn)的this作為一個變量類型表示對正在構(gòu)造的結(jié)構(gòu)的引用。
5.在結(jié)構(gòu)的方法中出現(xiàn)的this作為一個變量類型表示對調(diào)用該方法的結(jié)構(gòu)。
相關(guān)文章
C#實(shí)現(xiàn)Log4Net日志分類和自動維護(hù)實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)Log4Net日志分類和自動維護(hù),實(shí)例講述了Log4Net日志分類和自動維護(hù)的實(shí)現(xiàn)方法,并提供了完整的實(shí)例供大家參考學(xué)習(xí),需要的朋友可以參考下2014-10-10
C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將json轉(zhuǎn)換為DataTable的方法,涉及C#操作json及DataTable的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
C#使用FluentScheduler實(shí)現(xiàn)觸發(fā)定時任務(wù)
FluentScheduler是.Net平臺下的一個自動任務(wù)調(diào)度組件,這篇文章主要為大家詳細(xì)介紹了C#如何使用FluentScheduler實(shí)現(xiàn)觸發(fā)定時任務(wù),感興趣的小伙伴可以了解下2023-12-12

