載入中…
載入中…
從零開始、一次一個概念,把 C# 基礎語法、完整物件導向(封裝/繼承/多型/介面)、WinForms 桌面應用、檔案與 CSV、SQLite 資料庫 CRUD 練到扎實。以「商品/庫存系統」為貫穿主線,資料一路從 List → CSV → SQLite → 雲端,CRUD 螺旋練四次,最後完成一個可展示的桌面庫存整合專案。
每章講義 PDF 可免費線上預覽;範例程式碼與打包下載請進入各章節頁。
講義教材整理中,敬請期待。
撰寫一個 C# 主控台程式,讓使用者輸入身高(公分)與體重(公斤),計算並輸出 BMI 與健康判定;再加做一個公里/英里的單位換算。重點在變數、型別轉換與 Console 輸入輸出。
BMI = 體重(kg) / (身高(m))²,記得把公分換算成公尺;用 double.TryParse() 處理輸入錯誤。
設計一個 BankAccount 類別:餘額用 private 欄位包起來,提供 Deposit(存款)與 Withdraw(提款,餘額不足要擋下)方法,以及唯讀的 Balance 屬性。練習封裝。
餘額欄位設 private,對外只開放方法與唯讀屬性;Withdraw 前先檢查金額是否超過餘額。
設計一個基底類別 Animal 含虛擬方法 MakeSound(),繼承出 Dog、Cat、Bird 各自 override 叫聲。用 List<Animal> 裝不同動物,foreach 呼叫 MakeSound() 觀察多型。
基底方法用 virtual、子類別用 override;把子類別物件放進 List<Animal> 就能展示多型。
拿你 ch13 完成的三層版庫存專案,重構成 MVP + Repository:DbHelper 改成 IProductRepository/ProductRepository、MainForm 實作 IProductView 只負責顯示與轉發事件、CRUD 邏輯全搬進 ProductPresenter、最後在 Program.cs 組裝。挑戰:再寫一個 InMemoryProductRepository 餵假資料,證明「換得掉資料來源」。功能不變,只練架構。
記住方向:畫面 raise 事件通知 Presenter,Presenter 呼叫 _view 的方法叫畫面做事;MainForm 裡不准出現 if 判斷或 DbHelper。組裝忘了 new Presenter 的話按鈕會沒反應(沒人訂事件)。
程式隨機產生 1~100 的數字,讓使用者反覆猜,每次提示「太大/太小」,猜中就結束並顯示共猜了幾次。練習 while 迴圈與 if 條件判斷。
用 Random 產生答案,while (true) 迴圈搭配 break 跳出;用一個計數變數累加猜的次數。
把一組學生成績放進 List<int>,計算平均分、最高分、最低分,並由高到低排序印出。練習集合的走訪、新增與排序。
善用 List 的 Count、以及排序方法;平均要注意整數除法會被截斷,先轉成 double。
用 SQLite 為「商品」建表(編號、名稱、價格、庫存量),實作完整的新增、修改、刪除、查詢,並在讀檔/連資料庫的地方加上 try/catch。這是課程貫穿主線的第三次 CRUD 練習。
把資料庫操作集中到一個 DbHelper 類別;每個操作用參數化 SQL,避免字串拼接。