C# 抽象工廠模式 — 雞腿與漢堡 (2) — 程式碼實作與擴充性展示
UML 圖解與新廠商擴充 圖示即經典 Abstract Factory 結構。新增「必勝客」只需加入:PizzaHutFactory、PizzaHutHambu
C# 用 GDI+ 繪製驗證碼 (1) — ASCII 碼產生隨機字串演算法
隨機字串產生策略 數字與字母皆有 ASCII 編碼。除預先備妥字元陣列外,可直接用 ASCII 範圍產生。本文採簡單字元來源字串法: public stati
C# 用 GDI+ 繪製驗證碼 (2) — RandomGeneratorStyle 列舉與 DrawString 繪製核心
驗證碼字元集列舉 public enum RandomGeneratorStyle { Number, // 純數字
C# 用 GDI+ 繪製驗證碼 (3) — 顯示於 img 標籤與驗證邏輯
網頁顯示驗證碼 在 `` 元素中設定 `src=yzm.aspx` 即可: <img src=yzm.aspx alt= /> 驗證邏輯 繪製時已
C# 利用批次檔實現執行中程式自動更新 (1) — 問題由來與 xcopy 啟發
自動更新的常規思路與難點 伺服端放更新檔,客戶端小程式檢測下載覆蓋。但**主執行檔正在執行時無法覆蓋**(Windows 鎖定執行中 EXE/DLL)。 想法:
C# 使用單一物件實作 Undo/Redo (2) — 介面定義與 Undo/Redo/Insert 核心邏輯
步驟 4:介面定義 interface IUndoRedo { void Undo(int level); void Redo(int lev
C# 使用單一物件實作 Undo/Redo (3) — 示範應用程式完整程式碼實作
示範應用:WPF 繪圖程式 支援四操作:插入/刪除/移動/調整大小,兩種幾何圖形:矩形/多邊形,容器:Canvas。 步驟 1-3:識別操作、屬性、建立變更物
並發事件:使用 AsyncEnumerator 簡化 APM (1) — AsyncEnumerator 類別介面與迭代器撰寫指南
AsyncEnumerator 類別定義 public class AsyncEnumerator { public AsyncEnumerator(
C# 使用單一物件實作 Undo/Redo (1) — 基本概念與建模步驟
簡介 探討三種實作 Undo/Redo 方法:單一物件表示變更、命令模式、備忘錄模式。無通用解法,視應用具體情境。系列文先討論如何建模任意應用,再示範簡單應用實
並發事件:使用 AsyncEnumerator 簡化 APM (2) — 深度解析 AsyncEnumeration 環境與 CCR 對比
AsyncEnumeration 環境深度分析 C# 迭代器處理非同步是並發程式挑戰之一。Microsoft 並行與協調執行階段 (CCR) 提供更通用框架,同
並發事件:使用 AsyncEnumerator 簡化 APM (3) — HtmlToFile 迭代器實戰:非同步下載網頁並分塊寫入檔案
Figure 2:HtmlToFile 迭代器 private static IEnumerator<Int32> HtmlToFile(Asyn
並發事件:使用 AsyncEnumerator 簡化 APM (4) — 架構欄位與 ResumeIterator 核心邏輯
AsyncEnumerator 架構欄位 圖 3:AsyncEnumerator 欄位 public partial class AsyncEnumerat
並發事件:透過 C# 簡化 APM (1) — APM 困難點與匿名方法/Lambda/迭代器三大語言特性介紹
非同步程式模型 (APM) 的價值與痛點 APM 以極少執行緒處理大量 I/O 密集工作、不阻塞任何執行緒,是高回應/可擴展應用關鍵。但實作困難: 避免堆疊狀
並發事件:透過 C# 簡化 APM (2) — 同步 vs 非同步模式程式碼對照
Figure 1:ApmPatterns 類別節錄 private static void SynchronousPattern() { using
並發事件:透過 C# 簡化 APM (3) — 匿名方法與 Lambda 表達式簡化 APM 程式碼
多方法 APM 模式的複雜性 ApmPatternWithMultipleMethods 需額外定義 ApmData 封裝共享資料、無法使用 using(資源跨
並發事件:透過 C# 簡化 APM (5) — 迭代器 ArrayEnumerator/ArrayEnumerable/ArrayIterator 完整程式碼
Figure 3:迭代器完整實作 = 0; index--) yield return array[index]; } private sta
C# 結構與類別總結 (1) — 八大核心差異快速查閱表
結構 vs 類別:八大差異總覽 類型分類:結構 = 值類型 (存堆疊);類別 = 參考類型 (堆疊存參考,堆積存值)。 傳遞適用:類別適合大資料;結構適合小資
C# 結構與類別總結 (3) — Equals() 行為實測程式碼與輸出驗證
定義結構與類別 struct StructurePerson { public string FirstName; public string LastNam