C# 擴充方法實戰:判斷 Exception 是否為 SQL 外鍵/參考約束違規
場景 資料庫設定外鍵 (FK) 時,刪除主表資料若有子表關聯會拋出 SqlException,原始訊息如: The DELETE statement confl
Unity 核心解析:Vector3 結構體的值類型語義與高效使用模式
現象:為什麼 if (vec == null) 報警告? public static Vector3 GetPos(int x, int y, Vector3
C# DataTable 快速取得欄位名稱與資料類型工具方法
常見需求 動態建構 SQL、匯出 CSV/Excel、建立對應實體類別時,常需快速取得 DataTable 的結構描述。以下提供三個實用靜態擴充方法。 核心程
C# 操作 Windows 工作排程器進階實戰:含 UI 範例、schtasks 指令對照與常見錯誤排查
延伸閱讀 基礎 COM 封裝請參考上一篇《C# 程式化操作 Windows 工作排程器》。本文補充 UI 整合範例、命令列替代方案、實測截圖流程與 0x8007
C# 程式化操作 Windows 工作排程器:使用 TaskScheduler COM 元件完整實作
為什麼不直接用 Timer? 若需求是「每天凌晨 3 點備份資料庫」,使用 System.Threading.Timer 會讓進程長駐記憶體、佔用 CPU 輪詢
Unity 協程優化:解決 WaitForSeconds 產生 GC Alloc 的最佳實踐
問題背景 Unity 協程 (IEnumerator) 常用於延遲執行或等待條件。但 yield return new WaitForSeconds(1f) 每
C# 參數傳遞機制全解析:值參數、ref、out 與參考類型的特殊行為
核心概念 參數傳遞讓方法能接收外部資料,並可能產生多個「回傳值」效果。C# 提供三種模式:值參數(預設)、ref 參考參數、out 輸出參數。 1. 值參數
C# 堆疊與堆積深度解析(三):以 ICloneable 實作深層複製解決參考類型共享問題
系列回顧 前兩篇已釐清值類型與參考類型在參數傳遞、記憶體配置上的差異。本文聚焦於「參考類型成員在物件複製時預設為淺層複製」所導致的資料共享問題,並示範透過 IC
C# 控制台應用程式傳遞與接收命令列參數完整指南
前言 許多開發者長期使用 C# 卻忽略了 Main(string[] args) 中 args 參數的實際用途。本文透過實際場景示範如何從外部程式啟動控制台應用
C# 使用 Socket 實現高性能 HTTP 監聽:從 HttpListener 到自定義 TCP 伺服器的進階實踐
前言:HttpListener 的效能瓶頸 C# 內建的 HttpListener 雖然提供了簡單的 HTTP 監聽功能,但在實際壓力測試中發現,它難以應對高並
C# 純代碼創建快捷方式:Shell Link COM 介面完整封裝(桌面、開始菜單、收藏夾、自定義圖標/參數)
為什麼不用 WSH (WScript.Shell)? WScript.Shell 需引用 COM 組件 wshom.ocx,部署麻煩且受限於腳本宿主。純 She
C# 值類型不總在棧上:從生命周期看存儲位置(棧、堆、寄存器)
前言:打破「值類型=棧,引用類型=堆」的迷思 「值類型存棧上,引用類型存堆上」—— 這句聽了無數遍的口訣,是錯的(至少不精確)。本文從存儲位置的決策邏輯:生命周
Java vs .NET HashSet 性能大比拼:Contains/Add 百萬級基準測試與原理分析
測試背景 專案需同時維護 Java 和 C# 版本,發現 HashSet.Contains + Add 組合操作在 .NET 顯著快於 Java。本文通過受控基
C# 接口深度解析:從「多此一舉」到「解耦基石」的認知重塑
初學者的困惑 「接口裡只有方法簽名,沒有實現,繼承它還得在類裡寫一遍代碼,這不就是多此一舉嗎?」—— 這是許多 C# 初學者的心聲。本文通過兩個經典場景,層層遞
C# 與 MATLAB 混合編程:將 .m 函數編譯為 DLL 並在 WinForm 中調用
為什麼混合編程? C# 擅長 UI、業務流程、硬件通訊;MATLAB 擅長矩陣運算、信號處理、數學建模。將核心算法用 MATLAB 開發驗證,編譯為 .NET
Unity3D 中使用 SQLite 做本地數據庫的完整落地方案
整體架構流程 編輯器預建資料庫: 使用 Navicat 等工具設計結構,生成 .db 檔案。 更名並放入 Resources: 將 .db 改
從 Null Object 模式看 C# 6.0 的空值處理革新:?., ?[], ??= 全解析
前言 「空引用是十億美元的錯誤」—— Tony Hoare。C# 歷版本不斷推出語法糖應對空值:C# 2.0 可空值類型 T?,C# 3.0 擴展方法可處理 n
表達式求值器實戰:雙棧算法(操作數棧+運算符棧)C# 完整實現
算法原理:算符優先法(Dijkstra Shunting Yard 簡化版) 利用兩個棧: 操作數棧:存放數字 運算符棧:存放 + - * / ( )