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

C# 類別核心技術(一):建構函式、方法、參數傳遞與多型

     編輯:關於C語言

前言

類別是 C# 程式設計的核心結構。本章涵蓋建構函式與解構函式、方法定義、參數傳遞模式(輸入、參考、輸出)、方法覆寫與遮蔽、屬性存取子、索引子與事件實作等關鍵主題。

建構函式與解構函式

建構函式基本規則

  • 名稱與類別相同,無回傳型別。
  • 預設為 public,若類別僅含靜態成員可設為 private 防止實例化。
  • 可多載,接受初始化參數:public TestClass(string name, int age)。
  • 若未自行定義,編譯器提供無參數預設建構函式並呼叫 base()。

解構函式與資源釋放模式

解構函式命名為 ~TestClass(),由垃圾收集器非決定性呼叫。為確保寶貴資源(檔案控制代碼、資料庫連線等)及時釋放,建議實作 Release() 方法並在解構函式中呼叫:

public void Release() {
    // 釋放所有非受管理資源
}
public ~TestClass() {
    Release();
}

雖非強制,但這是良好的程式設計習慣。

方法參數傳遞模式

輸入參數(Value Parameter)

預設模式,以值傳遞變數副本。方法內修改不影響原變數。可傳遞常值運算式:CalcSquare(25)。對參考型別(類別實例),傳遞的是參考副本,仍指向同一物件。

參考參數(ref Parameter)

使用 ref 關鍵字,傳遞變數記憶體位址,方法可修改原變數值。呼叫前變數必須初始化。範例:

public void CalcSquare(ref int n) { n *= n; }
int val = 20; CalcSquare(ref val); // val 變為 400

輸出參數(out Parameter)

使用 out 關鍵字,專門用於從方法傳回結果。呼叫前變數不需初始化,方法必須在返回前賦值。適合多重回傳值情境。範例:

public void CalcSquare(int side, out int result) { result = side * side; }
int squared; CalcSquare(15, out squared); // squared = 225

方法覆寫與遮蔽

虛擬方法與覆寫

基類以 virtual 標記可覆寫方法,衍生類使用 override 重新定義。覆寫時不可改變存取層級。範例:

public virtual void CanBOverridden() { }
public override void CanBOverridden() { }

方法遮蔽(new 關鍵字)

若衍生類定義相同簽章方法但不標記 override,預設為遮蔽(隱藏)基類方法。使用 new 關鍵字可明確表示意圖並消除編譯器警告。透過基類參考呼叫時,遮蔽方法不會被多型調度。

屬性存取子

屬性透過 get(讀取)與 set(寫入)存取子封裝資料,隱藏內部儲存細節。可實現唯讀(僅 get)、唯寫(僅 set)或讀寫屬性。set 存取子隱含 value 參數代表新值。範例:

private int _sqFeet;
public int SquareFeet {
    get { return _sqFeet; }
    set { _sqFeet = value; }
}

總結

掌握建構函式、解構函式、三種參數傳遞模式、方法覆寫與遮蔽、屬性封裝,是撰寫健壯 C# 類別的基礎。下章將繼續探討索引子、事件與存取修飾詞等進階主題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved