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

C# 建構函式與解構函式用法 (1):核心原理與各類建構函式詳解

     編輯:關於C語言

摘要

建構函式與解構函式是類別中看似較簡單的兩類函式,但實際運用常出現意想不到錯誤。本文系統介紹原理及 C# 運用,與使用注意事項。

關鍵字:建構函式、解構函式、垃圾收集器、非受控資源、受控資源

一、建構函式與解構函式原理

C# 提供更好機制增強程式安全性。編譯器具嚴格型別安全檢查,幾乎能找出所有語法問題。但通過編譯不代表錯誤不存在,「語法錯誤」僅冰山一角。高級錯誤隱藏很深,難發現。

經驗顯示,許多難察覺錯誤源於變數未正確初始化或清除,而初始化清除工作易被遺忘。微軟利用面向物件概念設計 C# 時充分考慮此問題:將物件初始化工作放在建構函式,清除工作放在解構函式。物件建立時建構函式自動執行,物件消亡時解構函式自動執行,免除遺忘擔憂。

二、建構函式在 C# 中的運用

建構函式命名必須與類別同名,無回傳值型別(不同於 void)。存取類別方法、屬性前,第一條執行語句為相應建構函式。未自寫建構函式,CLR 提供預設建構函式。

1) 預設建構函式

class TestClass { public TestClass() : base() {} } // CLR 提供

2) 實例建構函式

實現類別實例初始化。可多載:

using System;
class Point
{
    public double x, y;
    public Point() { this.x = 0; this.y = 0; }
    public Point(double x, double y) { this.x = x; this.y = y; }
}
class Test
{
    static void Main()
    {
        Point a = new Point();
        Point b = new Point(3, 4); // 用建構函式初始化物件
    }
}

重要:類別一旦提供自訂建構函式,CLR 將不再提供預設建構函式,此點必須注意。

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