.NET 介面完整指南:定義、實作、顯式實作與常用模式
介面定義類型的契約,規範「能做什麼」而非「怎麼做」。本文系統整理介面語法、可包含成員、顯式實作技巧、判斷型別是否實作介面、以及三大經典模式(可列舉、可複製、可比
Redis 實作 Session 狀態管理:高效能、支援叢集、單點登入就緒
為什麼選 Redis 取代 InProc / SQL Server? 模式缺點 InProc進程回收丟失 Session、多伺服器無法共享、併發鎖爭用 Sta
ASP.NET 技巧:GridView 取得目前資料列索引的三種做法
在 GridView 的命令事件(RowCommand、RowDeleting、RowEditing 等)中,常需取得觸發事件的資料列索引。本文整理三種常見做法
C# 基礎:類型與成員核心觀念——常數、欄位、屬性完整解析
C# 類型內部可定義常數、欄位、方法、屬性、事件、建構函式等成員。本文深入剖析類型可見性、成員存取層級、靜態類型、部分類型,並詳細比較常數、欄位、屬性的語意、編
.NET 組件與 MSIL 入門:強名稱簽名、GAC、ILDASM 破解實戰
組件 核心概念 .NET 組件 = **邏輯功能單元** (含型別、資源、中繼資料)。物理上為 `.dll` 或 `.exe`。核心識別四要素:**名稱、版本、
C# 實作數獨求解器:回溯演算法與位元運算優化完整原始碼
問題定義 標準 9×9 數獨:每行、每列、每 3×3 宮包含 1-9 不重複。輸入含空格的盤面,輸出唯一解。 核心資料結構:位元遮罩 (高效判斷合法性) /
Unity Container 3.x 入門:從三層架構邁向 IOC 依賴注入
背景:為什麼要引入 IOC 容器? 傳統三層架構 (UI → BLL → DAL) 中,上層直接 `new` 下層具體類別,導致**高耦合、難測試、難替換實作*
.NET LINQ 標準查詢運算子完整分類指南
LINQ 標準查詢運算子超過 50 種,依執行方式分為「延遲執行」與「立即執行」,依功能分為篩選、投影、排序、分組、聯結、集合、轉換、元素、生成、數量、聚合等類
C# 通用型別轉換利器:Convert.ChangeType 進階封裝支援 Nullable、Enum、Guid
痛點:原生 Convert.ChangeType 缺陷 不支援 `Nullable` (如 `int?`),拋出 `InvalidCastException`
以 PreventNull 包裝器降低 NullReferenceException 風險
設計動機 `NullReferenceException` 是 .NET 專案頭號異常。與其到處寫 `if (obj != null)`,不如用**包裝器類型*
LINQ 查詢語法 vs 方法語法:標準查詢運算子與 Lambda 表達式完整對照
兩種語法本質等價 查詢語法 (`from`/`where`/`select`) 編譯時會**翻譯為方法語法** (擴充方法)。選擇取決於團隊風格與可讀性。 標
C# 委派與事件關係重構:從「欄位像屬性」到「編譯器合成」的認知升級
前言:錯誤認知的公開修正 早期筆者認為「事件對委派的封裝,好比屬性對欄位的封裝」,且發生在 `EventHandler` 類別內部。**經網友指正與原始碼驗證,
C# 反射移除物件未知事件委派清單輔助類
應用場景 動態解耦事件訂閱:外部元件註冊事件後,需在無法直接存取事件欄位時 (如私有事件、第三方組件) 透過反射**完全清除**該事件的所有訂閱者。 核心實作
const string vs static readonly string:編譯期常數 vs 執行期唯讀深度對比
程式碼實驗:跨組件版本更新陷阱 ClassA1.dll (類別庫) public class ClassA1 { public const stri
DevExpress GridView 清空欄位報「輸入字串格式不正確」終極解法
問題現場 動態建立 GridView 欄位,`ColumnEdit` 設為 `RepositoryItemTextEdit`。使用者清空已有資料的儲存格 (含輸
EasyUI ComboBox 綁定 JSON 資料完整實作 (C# 後端 + 前端)
架構概覽 後端:Generic Handler (.ashx) 查詢資料 → 序列化 JSON → Response.Write 前端:`$(#com_role
C# 基礎原理拾遺:參考型別的值傳遞與參考傳遞深度解析
面試經典題:「方法參數傳遞分為值傳遞和____兩種。」答案是「參考傳遞」。但若追問「參考型別的值傳遞與參考傳遞有何不同?」,許多開發者會混淆「深/淺拷貝」與「傳