[C#] this 關鍵字

  • 23193
  • 0
  • 2011-11-09

[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;
        }
    }
}

 

執行結果