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

C# 教程第 7 課:類別入門(建構子、實例/靜態成員、解構子、成員類型總覽)

     編輯:關於C語言

學習目標

  1. 實作建構子(預設、帶參數、鏈結)
  2. 區分實例與靜態成員
  3. 理解解構子與 GC 時機
  4. 掌握類別完整成員類型

範例:OutputClass / ExampleClass

using System;

class OutputClass
{
    private string myString;

    // 帶參數建構子
    public OutputClass(string input) => myString = input;

    // 實例方法
    public void PrintString() => Console.WriteLine(myString);

    // 解構子
    ~OutputClass()
    {
        // 清理非受控資源
    }
}

class ExampleClass
{
    public static void Main()
    {
        var obj = new OutputClass("This is printed by the output class.");
        obj.PrintString();
    }
}

建構子進階

  • 預設建構子:無參數,若未自訂任何建構子,編譯器自動提供。
  • 建構子鏈結:public OutputClass() : this("Default") { } 透過 this 呼叫另一建構子,避免重複初始化邏輯。
  • 靜態建構子:static OutputClass() { ... },在第一次建立實例/存取靜態成員/衍生類靜態建構子前執行一次,用於初始化靜態欄位。

實例 vs 靜態成員

特性實例成員靜態成員
存取方式instance.MemberTypeName.Member
記憶體每個實例獨有全域單一份
this 可用性可用不可用
典型用途物件狀態、行為工具方法、常數、單例
// 靜態方法範例
public static void StaticPrinter() => Console.WriteLine("Only one copy.");
// 呼叫
OutputClass.StaticPrinter();

解構子 (Finalizer)

  • 語法:~ClassName() { ... } (編譯為 Finalize() 覆寫)。
  • 由 GC 在物件不可觸及、記憶體回收前呼叫,時間不確定。
  • 僅用於釋放非受控資源(檔案控制代碼、原生記憶體、COM 物件)。
  • 現代模式:實作 IDisposable + Dispose() 確定性釋放,解構子作為安全網。

類別完整成員類型

  1. 建構子
  2. 解構子
  3. 欄位
  4. 方法
  5. 屬性
  6. 索引器
  7. 委派
  8. 事件
  9. 巢狀類別

後續課程將逐一介紹屬性、索引器、委派、事件。

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