C# 使用 SqlDataAdapter 填充 DataTable 執行預存程序完整實作
前言 在傳統 ADO.NET 專案中,SqlDataAdapter 搭配 DataTable 執行預存程序是常見模式。本文示範參數處理、選填參數、資料篩選、Cl
C# 日期時間格式化完整指南:標準/自訂格式、文化特性、資料繫結
前言 日期時間格式化是資料呈現的核心。本文整理自訂格式字元完整對照表、標準格式字串、ASP.NET 資料繫結寫法、文化特性處理與常見陷阱,提供一站式參考。 一
正則表達式完整符號速查表:元字元、量詞、群組、斷言
前言 正則表達式是文字處理的瑞士刀。本文將所有常用符號分類整理,附上說明、範例、常見陷阱,適合列印貼在螢幕邊隨時查閱。 一、 字元類別與速記 符號說明等價範
C# 建構函式完整解析:靜態/實例、鏈式呼叫、繼承規則
前言 建構函式是物件生命週期的起點。本文系統整理實例建構函式、靜態建構函式、建構函式鏈結、繼承時的呼叫順序、base/this 關鍵字,並附上常見錯誤與最佳實踐
C# 批次重命名檔案:加前綴/後綴、替換、編號完整實作
前言 批次重命名是檔案管理常見需求。本文示範 WinForms 專案核心邏輯:目錄掃描、Regex 重命名、UI 互動、錯誤處理,並提供可直接複製的工具類。
C# List 迭代移除元素的四種正確姿勢與效能比較
前言 List<T> 是最常用的集合,但在 foreach 迴圈中直接 Remove 會拋出 InvalidOperationException (
C# 圖片加浮水印完整實作:上傳、驗證、繪製、儲存
前言 使用者上傳圖片時自動加浮水印是常見需求。本文提供一個完整的 ASP.NET WebForms 範例,涵蓋檔案驗證、大小限制、亂數命名、九宮格定位、GDI+
C# DateTime 格式化大全:標準/自訂格式、常用範例與最佳實踐
前言 DateTime 格式化是每位 .NET 開發者的必修課。本文系統整理標準格式字串、自訂格式字串、常用輸出範例,並說明文化特性、效能與避坑重點,方便查閱與
C# 反射獲取實體類屬性名稱與值完整教學
前言 在開發通用元件、日誌記錄、物件序列化或動態建構 SQL 時,經常需要在運行時獲取物件的所有公開屬性名稱與對應值。C# 透過 System.Reflecti
C# 實現 DataTable、DataSet 與 XML 互相轉換完整指南
前言 在 .NET 開發中,資料表與 XML 之間的轉換是常見需求。無論是 Web Service 資料交換、本地快取,或是報表匯出,掌握高效且穩健的轉換技巧至
C# DataSet 轉實體類/列表通用方法:反射映射、大小寫不敏感、DBNull 安全處理
核心需求 ADO.NET DataSet/DataTable 與 POCO 實體類互轉是數據訪問層高頻操作。通用方法需支持:列名與屬性名大小寫不敏感匹配、DBN
反射實現工廠模式:基於特性的動態產品創建與開閉原則實踐
設計目標 工廠類根據參數 (枚舉) 動態創建對應產品實例,新增產品無需修改工廠代碼 (符合開閉原則),通過特性標記產品類型、反射掃描程序集 實現。 領域模型
.NET 反射核心類型體系:Assembly、Type、MemberInfo 與完整元數據分析實戰
反射命名空間 System.Reflection 包含所有核心反射類型,運行時獲取程序集、模塊、類型、成員的元數據,支持動態創建實例、調用方法、讀寫屬性/字段、
C# 擴展方法實戰:為現有類型添加實例方法 (ToSafeString、IsNullOrEmpty 等)
什麼是擴展方法? 擴展方法允許在不修改原類型、不繼承、不創建新類型的前提下,為現有類型 (類、結構、接口) 添加 實例方法。本質是靜態類中的靜態方法,第一個參數
C# 序列化與反序列化完全指南:BinaryFormatter、XmlSerializer、JSON、Protobuf 選型對比
什麼是序列化? 將對象圖 (對象及其引用的所有對象) 轉換為字節序列 (二進制、XML、JSON 等),以便持久化存儲 (文件、數據庫)、網絡傳輸、進程間通信。
C# 常用正則表達式驗證庫:身份證、手機、護照、銀行卡等實戰模式
核心驗證模式 (靜態只讀字符串) public static class RegexPatterns { /// 中國大陸身份證 (15/18位,含校
HttpWebRequest 後台抓取網頁通用類:GET/POST、編碼自適應、SSL/證書、超時控制
類設計目標 封裝 HttpWebRequest 底層細節,提供統一的 GET/POST 靜態方法,自動處理:編碼轉換 (UTF-8/GB2312/GBK)、HT
C# List 隨機排序與按權重抽取題目實戰
Fisher-Yates 洗牌算法 (標準隨機排序) 原文插入法 newList.Insert(random.Next(count+1), item) 存在分布