C# this指針用法

this指針是什麼:編程

這裏有一些面向對象編程的概念須要說明:類(Class)的概念和對象(Object)的概念
類是對事物歸納,也是C#編碼時全部代碼歸屬的基本單位;而對象是對類的實例化,也就是C#裏new方法的返回值。寫代碼是不能直接用操做類,而只能先實例化類,而後咱們用這個類被實例化後的對象。
通俗一些的說明是,「類」比如是「人」的概念,而咱們把類實例化後,就成爲單我的的「對象」,例如:「張三」。
this就是你的代碼所歸屬的「類」的實例化後的「對象」,也叫當前對象。函數

this指針的幾種用法:this

一、限定被類似的名稱隱藏的成員編碼

代碼以下指針

 public 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"
       }
   }

二、將對象做爲參數傳遞到別的方法中對象

代碼以下blog

 public  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指針當作方法傳遞

三、聲明索引器索引

 private int _Sy;
        public int this[int sy]
        {
            get { return  _Sy;}
            set { sy=_Sy;}
        }

總結:get

1.this關鍵字引用被訪問成員所在的當前實例。靜態成員函數沒有this指針。this關鍵字能夠用來從構造函數,實例方法和實例化訪問器中訪問成員。 
不能在靜態方法。靜態屬性訪問器或者域聲明的變量初始化程序中使用this關鍵字,這將會產生錯誤。 string

2.在類的構造函數中出現的this做爲一個值類型表示對正在構造的對象自己的引用。 

3.在類的方法中出現this做爲一個值類型表示對調用該方法的對象的引用。 

4.在結構的構造函數中出現的this做爲一個變量類型表示對正在構造的結構的引用。

5.在結構的方法中出現的this做爲一個變量類型表示對調用該方法的結構。

相關文章
相關標籤/搜索