前言:結構化學習路徑,建立完整 C# 認知框架
本大綱涵蓋 C# 核心語法、.NET 平台基礎、物件導向設計、進階特性、互操作、效能優化、部署版本控制等 18 章,適合初學者循序漸進、資深開發者查漏補缺。每章標註核心知識點與實戰應用場景。
課程大綱
第 1 章:.NET 程式設計語言 C#
- 1.1 Microsoft.NET:新革命
- 1.2 .NET 與 C# 關係
- 1.3 C# 語言特點:簡單、現代、物件導向、型別安全、平台獨立、組件導向
第 2 章:執行環境:全面了解 .NET
- 2.1 .NET 架構:CLR + FCL + 應用模型
- 2.2 CLR(通用語言執行平台)、CLS(通用語言規格)、CTS(通用型別系統)
- 2.3 .NET 開發工具:Visual Studio、VS Code、.NET CLI、Roslyn、NuGet
第 3 章:撰寫第一個應用程式
- Hello World 完整流程:原始碼 → csc 編譯 → PE/IL/中繼資料 → CLR 載入 → JIT → 執行
- 命令列編譯與 Visual Studio 專案結構(.csproj、Program.cs、依賴管理)
第 4 章:資料型別
- 4.1 實值型別:簡單型別、結構體、列舉、Tuple、可為 null 實值型別 (
int?)
- 4.2 參考型別:類別、介面、委派、陣列、字串、
object、dynamic
- 4.3 裝箱/解箱:效能代價、泛型避免裝箱、
Span<T> 避免配置
第 5 章:變數與常數
- 5.1 七種變數:靜態、實例、實值參數、參考參數、輸出參數、參數陣列、區域變數
- 5.2 常數
const vs 唯讀 readonly:編譯期 vs 執行期、版本控制影響
- 預設值規則、確定性指派分析
第 6 章:型別轉換
- 6.1 隱含轉換:安全、無資料遺失(衍生→基底、實值型別擴展)
- 6.2 顯式轉換:需轉型運算子、可能遺失精度/擲出例外
- 使用者定義轉換:
implicit/explicit operator、IConvertible、TypeConverter
第 7 章:運算式與運算子
- 7.1 運算子優先序與結合性
- 7.2 算術、指派、關係、邏輯、位元、移位運算子
- 7.3 特殊運算子:
is/as、typeof/nameof、??/??=、?.、default、sizeof/stackalloc、checked/unchecked
- 7.4 運算子多載規則與範例
第 8 章:流程控制
- 8.1 條件:
if/else、switch、switch expression(模式比對)
- 8.2 迴圈:
while、do-while、for、foreach(IEnumerable/模式基礎)、for 範圍 (C# 8+)
- 8.3 條件編譯:
#define/#if/#elif/#else/#endif、ConditionalAttribute
- 8.4 例外處理:
try/catch/finally、throw、Exception 階層、自訂例外、ExceptionDispatchInfo、try/catch/finally 模式基礎 (C# 7+)
第 9 章:物件導向程式設計基礎
- 9.1 封裝、繼承、多型、抽象四大支柱
- 9.2 UML 類別圖、序列圖、狀態圖
- 9.3 物件導向分析 (OOA):用例、領域模型
- 9.4 物件導向設計 (OOD):SOLID 原則、設計模式(建構型、結構型、行為型)
第 10 章:類別深度解析
- 10.1 類別宣告:修飾符(
public/internal/abstract/sealed/static/partial)
- 10.2 類別成員:欄位、屬性、方法、事件、索引子、運算子、建構函式、解構函式
- 10.3 建構函式:實例/靜態、鏈結(
this/base)、欄位初始化順序、存取修飾符、單例模式
- 10.4 解構函式/
Finalize/IDisposable/SafeHandle(詳見第 17 章)
第 11 章:方法完全指南
- 11.1 方法宣告:簽章、回傳型別、參數清單
- 11.2 參數傳遞:
ref/out/in/params、預設參數、具名參數
- 11.3 靜態 vs 實例方法
- 11.4 方法多載:簽章差異、解析規則
- 11.5 運算子多載:成對多載、對稱性
第 12 章:欄位與屬性
- 12.1 欄位:實例/靜態、
readonly/const、存取修飾符
- 12.2 屬性:自動實作、
get/set/init、邏輯驗證、唯讀/唯寫
- 12.3 繼承:
virtual/override/sealed/abstract/new、靜態屬性
- 12.4 現代特性:
required、init、record 自動屬性
第 13 章:事件與索引子
- 13.1 事件:
event 關鍵字、委派基礎、EventHandler<T>、標準模式、add/remove 存取子
- 13.2 索引子:
this[] 語法、多參數、介面索引子、Index/Range (C# 8+)
第 14 章:C# 繼承詳解
- 14.1 繼承機制:單一繼承、基底建構函式鏈結、
base 存取
- 14.2 多型:虛擬方法、覆寫、抽象類別/方法、介面實作
- 14.3 密封:
sealed class、sealed override、防止脆弱基底類別
- 14.4 繼承中屬性覆寫細節
第 15 章:C# 介面技術
- 15.1 組件導向程式設計:介面即契約、多型替代繼承
- 15.2 介面定義:方法、屬性、事件、索引子、靜態成員 (C# 8+)、預設實作 (C# 8+)
- 15.3 介面實作:隱含/顯式實作、菱形問題解決
- 15.4 抽象類別 vs 介面:選擇指南
第 16 章:組織應用程式
- 16.1 組件:.dll/.exe、資訊清單、強式名稱、版本號(Major.Minor.Build.Revision)
- 16.2 命名空間:邏輯組織、巢狀、
global using、file 型別
- 16.3
using 指示詞:匯入、別名、靜態導入
- 16.4 專案結構最佳實務:分層架構、專案參考、NuGet 套件管理
第 17 章:C# 檔案操作管理
- 17.1 .NET I/O 架構:
Stream 抽象、FileStream、MemoryStream、PipeStream
- 17.2 檔案儲存:
File/FileInfo/Directory/DirectoryInfo、路徑操作 (Path)
- 17.3 讀寫方法:
StreamReader/Writer、BinaryReader/Writer、File.ReadAllText/WriteAllBytes、JsonSerializer
- 17.4 非同步檔案操作:
ReadAsync/WriteAsync、FileStream 選項(FileOptions.Asynchronous)、IAsyncEnumerable 串流處理
第 18 章:補充進階主題
- 18.1 登錄表程式設計:
Microsoft.Win32.Registry/RegistryKey、權限、遠端登錄
- 18.2 呼叫 C++/VB 組件:P/Invoke、COM Interop、
DllImport、封送、SafeHandle
- 18.3 版本控制:
new/override 意圖表達、組件版本重導向、AssemblyVersion vs AssemblyFileVersion
- 18.4 程式碼優化:
Finalize 代價、StringBuilder、Span/Memory、內聯、ValueTask、ArrayPool、GC 模式
- 18.5 C# 關鍵字完整表(含內容關鍵字:
var、async、await、yield、where、select 等)
學習建議與資源
- 動手實作:每章配合程式碼練習,使用
dotnet new console 快速建立專案。
- 官方文件:Microsoft Learn C# Guide、.NET API Browser。
- 社群資源:C# 語言設計倉庫、NuGet Gallery、Stack Overflow C# 標籤。
- 工具鏈:Visual Studio 2022、VS Code + C# Dev Kit、JetBrains Rider、
dotnet CLI、ildasm/ILSpy/dnSpy、PerfView/dotnet-trace。
- 進階主題:非同步程式設計、泛型進階、反射/發射、Source Generators、Native AOT、Blazor/MAUI/ASP.NET Core 實戰。
結語
C# 與 .NET 生態系統龐大而精深。本大綱提供結構化知識地圖,助您從語法入門進階至平台精通。建議依序學習前 10 章奠基,再按專案需求深入特定章節。持續實作、閱讀原始碼、參與開源貢獻,方能成為頂尖 C# 工程師。