這篇文章主要介紹了C#中this指針的用法,對初學者而言是非常重要的概念,必須加以熟練掌握,需要的朋友可以參考下。
本文實例展示了C#中this指針的用法,對於初學者進一步牢固掌握C#有很大幫助,具體內容如下:
一、this指針是什麼:
這裡有一些面向對象編程的概念需要說明:類(Class)的概念和對象(Object)的概念
類是對事物概括,也是C#編碼時所有代碼歸屬的基本單位;而對象是對類的實例化,也就是C#裡new方法的返回值。寫代碼是不能直接用操作類,而只能先實例化類,然後我們用這個類被實例化後的對象。
通俗一些的說明是,“類”好比是“人”的概念,而我們把類實例化後,就成為單個人的“對象”,例如:“張三”。
this就是你的代碼所歸屬的“類”的實例化後的“對象”,也叫當前對象。
二、this指針的幾種用法:
1、限定被相似的名稱隱藏的成員
主要代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12public 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"
}
}
2、將對象作為參數傳遞到別的方法中
主要代碼如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23public 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指針當做方法傳遞
3、聲明索引器
主要代碼如下:
1 2 3 4 5 6private int _Sy;
public int this[int sy]
{
get { return _Sy;}
set { sy=_Sy;}
}
三、總結:
1.this關鍵字引用被訪問成員所在的當前實例。靜態成員函數沒有this指針。this關鍵字可以用來從構造函數,實例方法和實例化訪問器中訪問成員。
不能在靜態方法。靜態屬性訪問器或者域聲明的變量初始化程序中使用this關鍵字,這將會產生錯誤。
2.在類的構造函數中出現的this作為一個值類型表示對正在構造的對象本身的引用。
3.在類的方法中出現this作為一個值類型表示對調用該方法的對象的引用。
4.在結構的構造函數中出現的this作為一個變量類型表示對正在構造的結構的引用。
5.在結構的方法中出現的this作為一個變量類型表示對調用該方法的結構。