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

C# 類別核心架構:宣告語法、成員分類、建構子/解構子與繼承基礎

     編輯:關於C#

類別定位:物件導向的基本建構單元

類別是資料 (狀態) 與行為 (方法) 的封裝單位,也是建立物件的藍圖。C# 類別模型建立在 .NET 執行環境之上,支援單一繼承、介面多實作、泛型、屬性/事件/索引子等豐富成員類型。

類別宣告完整語法


[attributes] [class-modifiers] class identifier [type-parameter-list]
    [: base-class [, interface-list] ]
{
    // class-body: 成員宣告
}

類別修飾詞對照表

修飾詞說明備註
new巢狀類別隱藏基類別同名成員僅限巢狀類別
public無存取限制預設 internal (同組件)
internal同組件可存取組件預設
private僅外層類別可存取巢狀類別專用
protected外層類別及衍生類別可存取巢狀類別專用
abstract不可實例化,可含 abstract 成員設計基底類別用
sealed禁止繼承效能優化、安全性
static僅含靜態成員,不可實例化C# 2.0+,隱含 sealed
partial定義分散多檔案原始碼產生器常用

類別成員完整分類

類別成員類型說明
資料成員常數const 欄位,編譯期值
欄位變數儲存,static/readonly
事件發布/訂閱通知機制
函式成員方法執行動作/計算
屬性封裝存取邏輯
索引子this[] 陣列式存取
運算子多載符號運算
建構子實例初始化
解構子資源清理 (Finalizer)
解構函式C# 7.0+ Deconstruct 解構賦值

建構子與解構子核心概念

建構子

  • 名稱與類別同名,無回傳型別 (連 void 都不可寫)。
  • 通常 public,private 用於單例/工廠模式。
  • 隱含呼叫 base() (基類別無參數建構子)。
  • 不可被繼承,衍生類別必須透過 : base(...) 顯式呼叫。
  • 不可在建構子中執行虛擬方法呼叫 (衍生類別尚未初始化)。

解構子

  • 語法:~ClassName(),無參數、無修飾詞、不可多載。
  • 非決定性執行:由 GC 在物件無法觸達時排程執行。
  • 不應依賴解構子釋放關鍵資源 (檔案鎖、資料庫連線),改用 IDisposable + using。
  • C# 無記憶體洩漏問題 (GC 自動管理),解構子僅用於非受控資源最後防線。

類別實例化與繼承宣告


// 實例化
var obj = new MyClass(); // 呼叫建構子

// 單一繼承
class Base { }
class Derived : Base { } // 只能繼承一個基類別

// 介面實作 (多實作)
class Implementer : IFoo, IBar { }

巢狀類別與存取性


public class Outer {
    private class Nested { } // 僅 Outer 可存取
    protected class ProtectedNested { } // Outer 及其衍生類別可存取
}

現代 C# 類別進階特性

  • record 類別 (C# 9):public record Person(string Name, int Age); — 不可變、值語意相等、with 運算式、解構支援。
  • record struct (C# 10):值型別 record。
  • required 屬性 (C# 11):public required string Email { get; set; } — 編譯期強制初始化。
  • 檔案區域類型 (C# 11):file class Helper — 僅限單一檔案可見。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved