[C#] this 关键字

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

执行结果