C# WinForm 開發系列:各式 ComboBox 客製化控件大全
前言 標準 ComboBox 功能有限,實務上常需自動完成、多選、多欄、樹狀、圖示、字體列舉等進階樣式。本文整理 9 種常見客製化 ComboBox,附原始碼下
C# 匿名方法轉型 Delegate 型別失敗的原因與解決方案
問題情境 Control.Invoke(Delegate method) 等 API 要求傳入 System.Delegate 型別參數。若直接傳遞匿名方法:
C# 3.0 亮點:Lambda 運算式從委派、匿名方法演進而來
演進脈絡 C# 1.0:必須寫具名方法,再傳遞方法名稱給委派。 C# 2.0:引入匿名方法,省去命名煩惱,但語法仍較冗長。 C# 3.0:Lambda 運算式
趣談 C# 委派與事件:從「老師點名、班長發簡訊、學生回教室」說起
情境故事 大學擴招後,逃課風氣盛行。某天老師突發奇想:「沒到的舉手!」班長緊急發簡訊召回逃課同學,學生收到訊息趕回教室。這個經典的「發布-訂閱」模型,正是 C#
Visual Studio 2008 宏:一鍵插入函式註解模板
為什麼需要註解宏? 大型專案通常由多人協作,完善的函式註解能大幅降低維護成本。Visual Studio 內建巨集功能,可將常用註解格式封裝為鍵盤快捷鍵,一鍵插
C# 入門系列(二):類別與物件核心觀念
一、類別與物件 什麼是類別? 類別是現實世界事物的抽象藍圖。例如「人類」定義了共同屬性(姓名、年齡、五官)與行為(吃飯、睡覺、工作)。 什麼是物件? 物件是類
C# 入門系列(一):認識 C# 與第一支 Hello World
1. C# 簡介 C# 是微軟為 .NET 平台量身打造的完全物件導向語言。它吸收了 C++、Java、VB6 等語言的優點: 移除 C++ 複雜的指標操作,
淺談介面:從契約、多型到 C# 顯式實作的設計哲學
寫在前面 這是一篇隨筆,記錄我對「介面」這一概念的粗淺理解,難免有偏頗或錯誤之處,歡迎高手指正。 概念層面:介面是什麼? MSDN 定義:介面描述了一組相關
讓 C# 控制台應用擁有 WinForm 風格:禁用關閉、托盤圖標與事件處理
前言 這篇文章可能被視為「蛋疼」之作,畢竟讓控制台程式模擬視窗應用的行為並非主流需求。但當你不想建立 Web Service 或 WinForm,只想用一個輕量
C# 資料結構與演算法:第六章 BitArray 類別與位元運算實戰
前言:為什麼需要 BitArray? 當需要儲存大量布林旗標(如質數篩選、布隆過濾器、權限位元遮罩)時,bool[] 每個元素佔 1 位元組,而 BitArra
C# 資料結構與演算法:第五章 堆疊與佇列(下)——Queue 詳解
佇列基本概念 FIFO(First-In-First-Out,先進先出) 兩端操作:Rear(尾端)入隊、Front(前端)出隊 核心操作:Enqueue、D
C# 資料結構與演算法:第五章 堆疊與佇列(上)——Stack 詳解
堆疊基本概念 LIFO(Last-In-First-Out,後進先出) 操作端點:Top(頂端) 核心操作:Push(推入)、Pop(彈出)、Peek(窺視頂
C# 資料結構與演算法:第四章 基本搜尋演算法——循序與二分搜尋
前言 搜尋是另一項核心操作。本章介紹兩種基本搜尋:循序搜尋(適用無序資料)與 二分搜尋(適用已排序資料)。 1. 循序搜尋 從頭掃描至尾,找到即回傳。時間複雜
C# 資料結構與演算法:第三章 基本排序演算法實作與分析
前言 排序是電腦科學最基礎也最重要的操作之一。本章介紹三種經典簡單排序:氣泡排序、選擇排序、插入排序。雖然時間複雜度均為 O(n²),但理解它們是學習進階演算法
C# 資料結構與演算法:第二章 ArrayList 完整指南(下)
ArrayList 核心特性 動態擴容:預設容量 16,滿時自動增加 16(或翻倍,視實作而定) 儲存 object,需自行型別轉換(裝箱/拆箱開銷) 非強型
C# 資料結構與演算法:第二章 陣列與 ArrayList 深度解析(上)
陣列基礎 陣列是最基本的資料結構,C# 中的陣列本質上是 System.Array 抽象基類的實例,提供豐富的方法(排序、搜尋、複製等)。 宣告與初始化 //
C# 資料結構與演算法:第一章 時間測試與基準測試實作
前言:為什麼需要正確的計時方法? 在 .NET 執行環境下,單純使用 DateTime.Now 測量程式碼片段耗時極不準確,因為它包含了作業系統排程、其他行程干
C# 高效能計時器:Stopwatch、TickCount 與 Win32 API 深度解析
前言 在 C# 開發中,精確測量程式碼執行時間是效能調優的關鍵。本文將介紹三種常見的計時方案:Stopwatch、Environment.TickCount 以