Excel 匯出元件實作(三):NPOI 核心 API 與分頁寫入
NPOI 是 .NET 版 Apache POI,支援 .xls (HSSF) 與 .xlsx (XSSF)。本文聚焦 .xls 格式,實作分頁寫入與基礎樣式。
C# ExcelHelper:NPOI 封裝的通用 Excel 匯入匯出元件
設計目標 封裝 NPOI 庫,提供強型別、泛型友善的 Excel 操作介面,支援 .xls (HSSF) 與 .xlsx (XSSF) 格式,涵蓋資料匯出、樣板
領域驅動設計 (DDD) 實戰:YearMonth 值物件設計
在 DDD 中,將「年月」建模為獨立值物件 YearMonth,而非使用 DateTime 並忽略日/時/分,能精確表達領域概念、封裝不變條件、避免邏輯散佈。
C# 跨平台獲取本機 IPv4 位址(支援 XP/Win7/Win8/Win10/Win11)
Windows 7 以降支援 IPv6,Dns.GetHostAddresses 會同時回傳 IPv4 與 IPv6 位址,且順序不固定。正確做法是遍歷 Add
自動更新程式架構設計(二):更新程式主視窗與下載解壓實作
承接上篇,完成用戶端更新程式(WinForm)的主視窗邏輯:版本檢查、下載進度、解壓覆蓋、重啟主程式。 啟動流程 public FormUpdate(strin
自動更新程式架構設計(一):Web Service 部署與 Spring.NET 整合
為解決分散式部署環境下的用戶端自動更新,設計一套基於 Web Service + Spring.NET 三層架構的更新系統。第一部分完成伺服端 Web Serv
C# 5.0 async/await 非同步程式設計:從原理到實戰
async/await 是 C# 5.0 引入的語法糖,編譯器將其轉換為狀態機,配合 TAP (Task) 實現類同步寫法的非同步流程,徹底解決回呼地獄與跨執行
Socket 非同步通訊實戰:模擬三次握手解決 UDP 丟包問題
UDP 無連線、不保證送達、不保證順序。在檔案傳輸等可靠性要求場景,需在應用層實作確認重傳機制(ARQ),模擬 TCP 可靠傳輸。 核心機制:Stop-and-
Socket 非同步通訊實戰:自定義協議解決 TCP 黏包問題
TCP 為串流協議,無訊息邊界,連續發送會發生黏包/拆包。解決核心在於應用層協議定義訊息長度或分隔符,接收端緩衝區累積資料並依協議切割。 常見協議設計 長度前
C# 方法參數完整指南:預設值、ref/out/in/params、選擇性與具名引數
方法參數設計直接影響 API 易用性與效能。掌握參數修飾詞語意、預設值限制、傳遞機制與呼叫慣例,是介面設計基本功。 預設參數規則 語法:void M(int
PropertyGrid 在 WinForms 除錯與物件檢視的進階技巧
為什麼用 PropertyGrid? PropertyGrid 是 WinForms 內建控制項,能自動反射物件的公開屬性並以屬性視窗形式顯示,支援分類、排序、
C# 多執行緒並發控制:限制同時執行緒數量
大量任務併發時,無限制建立執行緒會導致 CPU 切換開銷過大、記憶體耗盡。使用 SemaphoreSlim 或自訂計數器限制並發度,是常見解決方案。 簡易計數器
C# List 查詢效能優化:以 Dictionary 建立索引達 O(1)
對 List<T> 進行頻繁條件查詢時,線性搜尋 O(n) 效能極差。參考資料庫索引概念,建立 Dictionary<TKey, TValue
C# 使用 Shell32 讀取檔案詳細屬性(尺寸、比特率、作者等)
Windows 檔案總管「詳細資料」欄位(如圖片尺寸、MP3 比特率、影片長度)可透過 Shell32.dll 的 Folder、FolderItem 介面程式
高品質 C# 程式碼 157 條準則精華整理
《高品質程式碼:改善 C# 程式的 157 項建議》一書涵蓋語言特性、集合與 LINQ、泛型與委派、資源管理、異常處理、非同步平行、架構設計、命名規範、程式碼整
C# 呼叫 SHFileOperation 顯示 Windows 檔案複製對話框
需求場景 在 WinForms 或 WPF 應用程式中執行檔案複製/移動/刪除時,若希望呈現 Windows 原生的進度對話框(含進度條、剩餘時間、取消按鈕等)