以下是 this 的常用用途:
- 限定被相似的名稱隱藏的成員
- 將對象作為參數傳遞到其他方法
- 聲明索引器
樣本:
綜合樣本。
以下是引用片段:<br /> // this 關鍵字<br /> // keywords_this.cs<br /> using System;<br /> class Employee<br /> {<br /> private string _name;<br /> private int _age;<br /> private string[] _arr = new string[5];<br /> public Employee(string name, int age)<br /> {<br /> // 使用this限定欄位,name與age<br /> this._name = name;<br /> this._age = age;<br /> }<br /> public string Name<br /> {<br /> get { return this._name; }<br /> }<br /> public int Age<br /> {<br /> get { return this._age; }<br /> }<br /> // 列印僱員資料<br /> public void PrintEmployee()<br /> {<br /> // 將Employee對象作為參數傳遞到DoPrint方法<br /> Print.DoPrint(this);<br /> }<br /> // 聲明索引器<br /> public string this[int param]<br /> {<br /> get { return _arr[param]; }<br /> set { _arr[param] = value; }<br /> }<br /> }<br /> class Print<br /> {<br /> public static void DoPrint(Employee e)<br /> {<br /> Console.WriteLine("Name: {0}/nAge: {1}", e.Name, e.Age);<br /> }<br /> }<br /> class TestApp<br /> {<br /> static void Main()<br /> {<br /> Employee E = new Employee("Hunts", 21);<br /> E[0] = "Scott";<br /> E[1] = "Leigh";<br /> E[4] = "Kiwis";<br /> E.PrintEmployee();<br /> for(int i=0; i<5; i++)<br /> {<br /> Console.WriteLine("Friends Name: {0}", E[i]);<br /> }<br /> Console.ReadLine();<br /> }<br /> }<br /> /**//*
控制台輸出:
Name: Hunts
Age: 21
Friends Name: Scott
Friends Name: Leigh
Friends Name:
Friends Name:
Friends Name: Kiwis
*/
注意點:
由於靜態成員函數存在於類一級,並且不是對象的一部分,因此沒有 this 指標。在靜態方法中引用 this 是錯誤的。
索引器允許類或結構的執行個體按照與數組相同的方式進行索引。索引器類似於屬性,不同之處在於它們的訪問器採用參數。
連結的部落格地址是:http://blog.163.com/huang_ying_lu/blog/static/269998320081109212363/