[C#] this 關鍵字
this 關鍵字是用來參考物件本身,在類別內部存取本身的方法和欄位,平時並不需要特別加上此關鍵字,即可存取類別成員。
那 this 關鍵字是用來做什麼的? 它最大用途在於區隔類別層級與區域層級變數。
當類別層級變數名稱與位於方法內的區域變數名稱相同時,在區域內必定以區域變數為主,並非使用類別層級的同名變數,我們可以透過 this 關鍵字讓你指定取得類別層級的變數而非區域層級的區域變數。
舉一個例子,範例包含兩個類別 Program 與 Compute,請注意註解部分說明
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplicationThis
{
class Program
{
static void Main(string[] args)
{
Console.Write("請輸入小數 : ");
double pNum = double.Parse(Console.ReadLine());
Compute MyCompute = new Compute();
MyCompute.Ceiling(pNum);
Console.WriteLine("{0} 無條件進位後等於 {1} !!", MyCompute.pNum, MyCompute.dCeilingNum);
Console.ReadLine();
}
}
class Compute
{
// Compute 類別包含 pNum 與 dCeilingNum 變數
public double pNum;
public double dCeilingNum;
// Ceiling 方法,傳入名稱同為 pNum 的變數
public void Ceiling(double pNum)
{
double dCeilingNum;
// 將傳入參數 pNum 指定給類別層級變數 pNum
this.pNum = pNum;
dCeilingNum = Math.Ceiling(pNum);
// 區域變數 dCeilingNum 指定給類別層級變數 dCeilingNum
this.dCeilingNum = dCeilingNum;
}
}
}
執行結果
