編譯器前端核心:C# 實作詞法分析器 (一) — 理論基礎與整體架構
前言:為什麼要自己寫詞法分析器? 深入理解編譯器前端 (Lexer → Parser → AST) 運作機制 領域特定語言 (DSL)、模板引
.NET 並發集合完全指南:ConcurrentDictionary/Queue/Stack/Bag/BlockingCollection 實戰
為什麼需要並發集合? 多執行緒環境下,List<T>、Dictionary<TKey, TValue> 等非執行緒安全集合會導致競爭條件
C# WinForms 打造專業啟動畫面:從基礎架構到進階進度報告
為什麼需要啟動畫面? 掩蓋冷啟動延遲 (載入組件、讀取設定、初始化資料庫連線…) 提供品牌曝光與版本資訊 回報初始化進度,降低使用者焦
WPF 進階:x:Type 標記延伸完整指南與動態視窗建立實戰
什麼是 x:Type? x:Type 是 XAML 標記延伸,用於在標記中取得 CLR 型別的 System.Type 物件,相當於 C# 的 typeof(M
策略模式深度解析:演算法封裝與動態切換的 C# 實戰
模式定義 「定義一系列演算法,將每個演算法封裝起來,並使它們可以互相替換。策略模式讓演算法獨立於使用它的客戶端而變化。」 UML 角色對照 角色範例
C# 手把手教你建立與呼叫 DLL (命令列 csc 編譯)
為什麼要手動編譯 DLL? 理解 .NET 組件編譯本質:原始碼 → IL → 組件 無 Visual Studio 環境 (CI/CD、容器
C# Access 資料匯出 Excel 完整實作 (OleDb 方案)
適用場景 舊系統資料遷移:Access (.mdb/.accdb) → Excel (.xls/.xlsx) 無 Office 安裝環境 (S
C# TCP 通訊入門:從零打造簡易聊天室 (Server/Client)
架構概覽 Server:TcpListener 監聽埠 → AcceptTcpClient() 阻塞等待連線 → 取得 NetworkStream →
C# 匿名型別與 object 互轉:三種實用技巧總結
問題情境 匿名型別(new { Name = Tom, Age = 25 })編譯器產生的類別為 internal sealed,無法在方法簽章中直接使用。放入
C# 設計模式深度解析:裝飾模式與動態功能擴展
什麼是裝飾模式? 裝飾模式屬於結構型設計模式,核心目的是在不修改原類別、不使用繼承的前提下,動態為物件附加新行為。它以「包裝」方式取代「繼承」,避免類別爆炸,支
解決 Word 表格「垂直合併儲存格導致無法存取 Row」的 C# 方案
錯誤現象 使用 Microsoft.Office.Interop.Word 操作表格時,若表格包含垂直合併的儲存格,呼叫 table.Rows.Add() 或直
C# 實現可重複 Key 的集合:SortedList + 自訂比較器
問題背景 Dictionary<TKey, TValue> 強制 Key 唯一,但實務上有時需要「同一 Key 對應多個 Value」或「保留插入順
C# 動態類型轉換:利用 TypeDescriptor 實現字串轉任意型別
前言:為什麼需要動態類型轉換? 在 C# 開發中,經常遇到這樣的場景:從 JSON、XML 或設定檔讀取資料時,屬性值皆為字串形式,但目標物件的屬性型別卻五花八
C# 自訂屬性實現 JSON 反序列化:Attribute 標記映射、反射賦值、型別轉換與簡易 JsonMapper 完整實作
設計目標 針對簡單 JSON 物件 (非陣列、非巢狀複雜結構) 實現輕量級反序列化:透過 `[JsonField(key)]` 標記實體屬性對應 JSON 鍵值