C# System.Collections.Generic 泛型集合全景指南:9 大核心類別選型對比
前言 List<T> 和 Dictionary<TKey, TValue> 是最常用,但 .NET 提供 9 種泛型集合,各有優勢場景。
設計模式精講:簡單工廠模式封裝物件創建邏輯
前言 到處 new ConcreteClass() 會導致高層模組強依賴具體實作,違反依賴倒置原則。簡單工廠模式透過一個工廠類統一創建邏輯,讓客戶端面向抽象介面
GridView DataFormatString 格式化字串完整速查表
前言 DataFormatString={0:格式} 是 GridView、DetailsView、FormView 等資料繫結控制項格式化輸出的核心屬性。{0
C# SqlTransaction 事務處理標準模式:啟動、提交、回滾、using 區塊最佳實踐
前言 資料庫事務是資料一致性的守護神。ADO.NET SqlTransaction 雖然基礎,但正確使用模式卻常被忽視:連線管理、異常處理、提交/回滾時機、資源
C# 參數傳遞本質:值參數 vs 引用參數 (ref) 圖解與避坑指南
前言 「C# 是值傳遞還是引用傳遞?」這是經典面試題,也是無數 Bug 根源。本文用身份證比喻、IL 視角、實戰代碼徹底釐清:預設皆為值傳遞,引用型別傳的是「引
C# 釋放系統記憶體實戰:EmptyWorkingSet 讓進程工作集最小化
前言 金山、360 記憶體整理工具能瞬間降低進程佔用記憶體,原理其實是呼叫 Windows API EmptyWorkingSet 強制修剪進程工作集。本文提供
C# 介面設計精髓:從定義、實作、工廠到依賴倒置的完整流程
前言 介面是 .NET 解耦、多型、測試替身、插件架構的基石。但許多開發者僅停留在「類別實作介面」層面,忽略了定義規範、工廠創建、依賴注入的完整工程流程。本文以
面試必刷:5 道經典遞歸算法題目與通用解題框架
前言 遞歸是考驗邏輯抽象能力的經典面試題。本文精選 5 道高頻題目,涵蓋字串、數列、數學、組合數學,並總結「三步走」通用解題框架,助你面試從容應對。 通用遞歸
C# 索引器 深度解析:讓類別像陣列、字典一樣直觀存取
前言 你每天都在用索引器:list[0]、dict[key]、dataTable.Rows[0][Name]。但你知道如何為自己的類別定義索引器嗎?本文從語法本
C# ThreadPool 線程池完全指南:從基礎配置到 ManualResetEvent 同步實戰
前言 頻繁建立/銷毀執行緒極其消耗資源。ThreadPool 透過佇列重用執行緒,是 .NET 高併發處理核心。本文涵蓋配置、工作提交、同步等待、動態調整全流程
C# Thread.Join() 深度解析:阻塞的是誰?多執行緒同步的關鍵機制
前言 Thread.Join() 是執行緒同步最基礎的 API,但 MSDN 文檔「Blocks the calling thread until a thre
設計模式精講:適配器模式讓不兼容介面完美協作
前言 系統整合第三方服務時,介面往往不統一:支付寶、微信支付、銀聯各有不同 API;舊系統遷移時,舊介面無法直接滿足新需求。適配器模式正是解決「介面不匹配」的經
C# 資料庫異常處理神器:DataException 擴充方法精準識別唯一鍵衝突、外鍵違規、並發衝突
前言 資料庫操作異常處理常寫成 catch (Exception ex) { log; throw; },無法針對具體錯誤類型(唯一索引衝突、外鍵違規、樂觀鎖衝
C# List 排序實戰:為什麼要轉陣列再用 Array.Sort?
前言 初學者常見寫法:list.ToArray() 再 Array.Sort()。其實 List<T> 內建 Sort() 方法更直接。本文對比兩種
C# 委派與事件深度解析:從底層原理到設計模式應用
前言 委派與事件是 C# 核心語言特性,也是觀察者模式、回呼、非同步程式設計的基石。許多開發者知其然不知其所以然。本文從類型本質、封裝關係、設計意圖、實戰決策四
C# DataTable 篩選查詢三大技巧:Select、DataView、LINQ 完整對比
前言 從資料庫撈回 DataTable 後,記憶體端篩選、排序、分頁是常見需求。本文對比三種主流方式:DataTable.Select()、DataView、L
C# 動態建立與操作 DataTable 兩種核心方法詳解
前言 DataTable 是 ADO.NET 核心物件,常用於記憶體資料暫存、匯入匯出、報表繫結。本文介紹兩種動態建立與填充資料的標準方式,並說明適用場景與效能
C# 批次解壓縮:遞歸遍歷多層資料夾將所有 ZIP 解壓到單一目錄
前言 實務上常遇到需求:來源目錄下有多層子資料夾,每層包含多個 ZIP 檔案,需全部解壓到同一目標目錄並保留子資料夾結構區分來源。本文使用 SharpZipLi