這篇文章主要介紹了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作為一個變量類型表示對調用該方法的結構。