C# 進階:枚舉型別的進階用法 — 欄位、建構函式與方法實作
C# 枚舉的進階特性 在 C# 中,enum 本質上是一種實值型別,主要用於定義一組具名常數。雖然 C# 的枚舉不像 Java 那樣支援在枚舉內部直接定義欄位、
C# 程式設計利器之二:結構與列舉——FontStyle 列舉實際應用
.NET Framework 列舉基底類別 System.Enum:抽象類別,繼承 ValueType、實作 IComparable、IFormattable、
C# 程式設計利器之一:類別(Class)上——物件導向核心與自定義類別範例
物件導向程式設計 (OOP) 以類別為基礎思考,「封裝」屬性與行為。《Code Complete》強調:建立高品質類別,首要步驟是建立良好介面,包含合理抽象並隱
C# 程式設計利器之一:類別(Class)中——封裝與類別特性
驗證類別封裝特性 Computer zhangsan = new Computer(張三); Computer lisi = new Computer(李四);
C# 程式設計利器之一:類別(Class)中——建構子、方法、物件實例
3. 建構子 無回傳型別,實例化時自動呼叫。可多載、初始化屬性。 class Computer { public Computer() {} p
C# 程式設計利器之一:類別(Class)下——類別修飾詞
7. 類別修飾詞 常見類別修飾詞: public class ClassName { } public static class ClassName { } p
C# 遊戲手柄程式開發——API 篇(三)上:鍵盤模擬 keybd_event 基礎封裝
鍵盤模擬 API [DllImport(user32.dll)] public static extern void keybd_event(byte bVk,
C# 遊戲手柄程式開發——API 篇(三)下:鍵盤模擬 keybd_event 封裝與成品展示
鍵盤模擬 API [DllImport(user32.dll)] public static extern void keybd_event(byte bVk,
C# 遊戲手柄程式開發——API 篇(二)上:被動模式回顧與主動模式 joyGetPosEx 介紹
被動模式回顧 程式僅扮演訊息接收者,系統定時通知手柄狀態。問題:按下並放開一個按鍵,系統可能在這段極短時間內發送 N 次訊息(N 取決於 uPeriod 與按鍵
C# 程式設計利器之一:類別(Class)下——繼承與介面實作
6. 類別繼承 C# 為單一繼承:一個類別僅能有一個父類別,但可實作多個介面。 // 單一繼承 class B : A { } // 繼承類別並實作一個介面
C# 遊戲手柄程式開發——API 篇(二)上:JOYINFO/JOYINFOEX 結構定義
joyGetPos vs joyGetPosEx joyGetPos 僅支援 1-4 號按鈕,建議使用 joyGetPosEx。 結構定義 [StructLa
C# 遊戲手柄程式開發——API 篇(二)中:主動模式 joyGetPosEx 與按鍵去抖邏輯
joyGetPosEx 使用 需初始化 JOYINFOEX 結構,設定 dwSize(Marshal.SizeOf 取得)與 dwFlags(如 JOY_RET
C# 遊戲手柄程式開發——API 篇(二)下:按鍵重複狀態完美解決方案
問題情境 玩遊戲時常邊移動邊攻擊(按住方向鍵不放,連按 A/B 鍵)。輪詢中會出現: 右鍵 → 右鍵 → 右鍵+A → 右鍵 → 右鍵+B → 右鍵 … 若單純
C# 遊戲手柄程式開發——API 篇(一)上:動機與兩種開發模式
起因 購買北通 USB 手柄玩 SFC/街機模擬器。想用手柄玩 Flash 遊戲,但 Flash 不支援手柄程式設計。靈機一動:寫輔助程式將手柄事件轉為鍵盤/滑
C# 遊戲手柄程式開發——API 篇(一)中:被動模式 joySetCapture 訊息處理
兩種開發模式 主動模式:自行呼叫 joyGetPos/joyGetPosEx 輪詢狀態。 被動模式:呼叫 joySetCapture 向系統申請捕捉,
C# 遊戲手柄程式開發——API 篇(一)下:LParam 座標解析與方向鍵判斷
LParam 參數解析 高 16 位:Y 座標 低 16 位:X 座標 四個方向鍵判斷邏輯:未按下時 X、Y 坐標在中心點;按下右鍵 → X 向右偏
資料結構 (C#):循環鏈結串列設計與游標操作
循環鏈結串列設計 可為單向或雙向。本實作繼承雙向鏈結串列,尾節點後繼指向頭節點。維護 m_CurrentNode 與 m_CurrentIndex 實現游標循環
資料結構 (C#):循環鏈結串列實作與約瑟夫問題應用
循環鏈結串列 繼承雙向鏈結串列,尾節點後繼指向頭節點。維護游標 m_CurrentNode 與索引 m_CurrentIndex,提供 GetNext()、Ge