一、this可以代表引用類的當前實例,包括繼承而來的方法,通常可以省略。
復制代碼 代碼如下:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string Name, int Age)
{
this.Age = Age;
this.Name = Name;
}
}
這個不用多說,當對象調用自己內部函數的時候,用到對象使用this即可。
二、this關鍵字後面跟“:”符號,可以調用其它的構造函數
復制代碼 代碼如下:
//聲明有實現的構造函數
public Person()
{
this.NAge = 100;
Console.WriteLine("我是超人!");
}
public Person(int nAge)
{
Console.WriteLine("超人的年齡{0}", nAge);
}
//使用this關鍵字調用了第二個一個參數的構造函數
public Person(int nAge, string strName)
: this(1)
{
Console.WriteLine("我是叫{0}的超人,年齡{1}", strName, nAge);
}
我們創建該對象看看是否調用成功。在Main函數中添加如下代碼:
復制代碼 代碼如下: Person p = new Person(10,"強子");
執行會輸出:
復制代碼 代碼如下:
超人的年齡1
我是叫強子的超人,年齡10
三、聲明索引器
索引器類型表示該索引器使用哪一類型的索引來存取數組或集合元素,可以是整數,可以是字符串;this表示操作本對象的數組或集合成員,可以簡單把它理解成索引器的名字,因此索引器不能具有用戶定義的名稱。例如:
復制代碼 代碼如下:
public class Person
{
string[] PersonList = new string[10];
public string this[int param]
{
get { return PersonList[param]; }
set { PersonList[param] = value; }
}
}
其中索引的數據類型必須與索引器的索引類型相同。例如:
復制代碼 代碼如下:
Person person = new Person();
person[0] = "hello";
person[1] = "world";
Console.WriteLine(person[0]);
看起來對象像個數組一樣,呵呵。