首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 銳利體驗 (四) (2):物件實例化與 this 關鍵字詳解

     編輯:關於C語言

物件與 this 關鍵字

類別與物件區分對掌握 OO 程式設計至關重要。類別是成員封裝,但實例化物件並在其資料成員上操作才是完成任務根本。實例化語法:MyClass myObject = new MyClass(),new 語義呼叫對應建構函式。C# 所有物件建立於受控堆積。實例化後類型稱「物件」,核心特徵為擁有自己專屬資料成員副本,稱「實例成員」。非特定物件專屬者稱「靜態成員」,類別中用 static 宣告。僅操作靜態成員者稱「靜態函式成員」。C# 靜態成員只能透過類別名稱存取:

using System;
class A
{
    public int count;
    public void F() { Console.WriteLine(this.count); }
    public static string name;
    public static void G() { Console.WriteLine(name); }
}
class Test
{
    public static void Main()
    {
        A a1 = new A(); A a2 = new A();
        a1.F(); a1.count = 1; a2.F(); a2.count = 2;
        A.name = "CCW"; A.G();
        // 錯誤:a1.name、a1.G() 無法編譯
    }
}

this 關鍵字三大用途

  1. 實例方法體內存取成員:this.count 與直接 count 語義相同。靜態成員函式無 this 指標。
  2. 建構函式中限定被相同名稱隱藏的成員:
    class Employee
    {
        public Employee(string name, string alias)
        {
            this.name = name;     // 成員欄位
            this.alias = alias;   // 成員欄位
        }
    }
  3. 將物件本身作為參數傳遞:
    CalcTax(this);
  4. 宣告索引器時不可或缺:
    public int this[int param]
    {
        get { return array[param]; }
        set { array[param] = value; }
    }
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved