C# WinForms 可為 Null 的 DateTimePicker 控制項 v1.2:支援清空、自訂格式與區間屬性
痛點與解決方案 標準 DateTimePicker 強制要求有值,無法直接表達「未選擇日期」的狀態。本元件 DateTimePickerX 繼承原生控制項,新增
C# 呼叫 SQL Server 預存程序完整指南:參數傳遞、輸出值與最佳實務
為什麼要使用預存程序? 減少網路傳輸:一次呼叫取代多條 SQL 往返 執行效能佳:編譯後快取於記憶體,重複呼叫無需再解析優化 安全性高:防止 SQL Inje
C# Process 類別實戰:以管理員權限啟動外部程式繞過受限環境
情境與動機 企業環境常鎖定員工電腦權限,僅允許以管理員身分執行 Visual Studio 等開發工具。本文示範如何利用已取得的管理員權限進程(如 VS2010
WinCE 5.0 透明背景按鈕實作:從 PictureBox 到自繪的演進實驗
前言 在 Windows CE 5.0 / .NET Compact Framework 環境下,標準 Button 不支援透明背景。本文記錄作者從「疊加多張圖
ASP.NET GridView 進階實戰:五大常見互動效果完整實作
前言 GridView 是 ASP.NET WebForms 時代最核心的資料呈現控制項,雖然用得熟,但許多實用的進階技巧常被忽略。本文透過一個完整範例,示範五
C# 禁用 USB 埠的兩大實戰技巧(含完整程式碼)
前言 在企業資安管控或特定應用場景中,常需要以程式方式禁用電腦的 USB 埠,防止資料外洩或惡意程式入侵。本文介紹兩種 C# 實作方案:修改登錄檔與獨佔驅動程式
《重構》C# 實戰系列(一):建立基準測試與自動化單元測試
前言:重構的第一步是測試 馬丁·福勒在《重構》一書開宗明義:「每當我要進行重構,第一步永遠是建立一組可靠的測試環境。」沒有測試保護,重構極易引入回歸錯誤。本文示
《重構》C# 版實戰 (二):提煉 AmountFor 方法 — 從巨大函數中分離計算邏輯
前言 承接第一篇建立的測試基石,本篇展示重構的第一刀:**提煉函數**。針對 Customer.Statement() 中最長、變化最頻繁的 switch 計算
《重構》C# 版實戰 (三):Statement 整體重構 — 提煉函數、移動函數、以查詢取代暫時變數
前言 承接前兩篇:建立測試基石、抽取 AmountFor 方法。本篇對 Customer.Statement() 進行整體重構,展示 **提煉函數**、**移動
《重構》C# 版實戰 (四):Switch 多態化重構完整演練 — 從條件分派到策略模式
前言 繼前三篇建立測試基石、抽取 AmountFor、整體重構 Statement 後,本篇進入核心挑戰:**消除 switch 條件分派,引入多態與策略模式*
C# 讀寫 INI 檔案:P/Invoke 封裝 Kernel32 API 完整教學
為何仍需 INI 檔案? 雖然 .NET 偏好 XML/JSON/`appsettings.json`,但 INI 格式輕量、人類可讀、易於跨語言(C++、Py
ASP.NET WebForms 自訂分頁控制項:演算法實作與完整程式碼
設計目標 封裝為可重複使用的 UserControl(.ascx)。 支援首頁、上一頁、頁碼(含省略號)、下一頁、末頁導航。 頁碼顯示邏輯:當前頁附近顯示固定
C# SerialPort 讀寫逾時設定完整指南
逾時屬性簡介 System.IO.Ports.SerialPort 提供兩個關鍵屬性控制讀寫逾時(預設皆為 InfiniteTimeout,即永不逾時): R
C# 索引子與陣列比較:語法、靈活性與封裝優勢
核心差異速覽 特性陣列索引子 參數型別僅限 int(單一維度)可為任意型別(string、enum、多參數等) 多載支援不支援支援多載(依參數簽章區分)
C# 使用 iTextSharp 導出 PDF 完整指南:中文字型、圖片、文字混排實戰
前言 iTextSharp (iText 5.x 版本) 是 .NET 經典 PDF 生成庫。本文示範從零建立 PDF 文件、嵌入中文字型 (解決亂碼)、插入圖
LINQ 進階技巧:多層 GroupBy 實現資料分組嵌套 (年→月→日) 完整教學
前言 LINQ 的 GroupBy 是資料分組利器。本文示範如何透過連續多次 GroupBy 實現多層級巢狀分組 (年 → 月 → 日),並比較 查詢語法 與
C# 單一執行個體應用程式:Mutex 與 Process 兩大經典實作模式完整比較
前言 確保應用程式在系統中僅執行單一執行個體是常見需求 (如即時通訊軟體、系統工具)。本文詳細比較兩大經典實作:Mutex 核心物件法與Process 進程檢測
C# 使用預設瀏覽器開啟網頁:登錄表解析法與現代替代方案
傳統做法:解析登錄表取得瀏覽器路徑 早期常見做法是讀取 HKEY_CLASSES_ROOT\http\shell\open\command 的預設值,透過正則表