本章作為 C# 學習旅程的鋪墊,梳理了程式語言發展史、C# 與主流語言的比較、核心特性概覽以及編譯器基本用法。雖然內容廣泛,但對初學者建立整體認知框架至關關重要。
.NET 程式不包含機器碼,而是 **IL(中間語言)**。IL 比組合語言更高階、抽象,類似「帶物件導向指令的組合語言」,由 CLR(Common Language Runtime)即時編譯(JIT)為原生機器碼執行。
C# 繼承了 C/C++ 的語法風格與強大功能(指標、運算子多載等),卻摒棄了手動記憶體管理、宏、多重繼承等易誤用特性,提供**型別安全、垃圾回收、版本控制**等現代機制。
VB 以簡單上手著稱,但早期版本 OOP 支援不足。C# 目標是「**VB 易用性 + C++ 功能性**」的融合,並成為 .NET 平台的**首選語言**(早期官方文檔範例多以 C# 為主)。
Java 的優勢:跨平台、純物件導向、垃圾回收、豐富類庫。C# 在語法上極度類似 Java,但進行了關鍵改良:
作者觀點:C# 可視為「更便宜、不太完整的 Java 替代品」——這反映了早期 .NET 與 Java 陣營的競爭語境。
| 對比語言 | C# 的優勢亮點 |
|---|---|
| VB / VB.NET | 更純粹的 OOP、語法更簡潔、.NET 首選語言地位 |
| VC++ / C++ | 開發效率更高、記憶體安全、無需手動管理資源 |
| C++Builder / Delphi | 平台獨立性(.NET 跨平台願景)、標準化類庫 |
| Java | 語法更強大(運算子多載、列舉、unsafe)、跨語言互操作、統一 BCL |
| JavaScript / VBScript | 強型別、編譯期檢查、大型專案工程化能力 |
註:書中比較傾向突出 C# 優勢,讀者應辨識語境,各語言皆有其適用場域。
.NET 平台支援多元應用模型:
csc Program.cs /out:MyApp.exe # 指定輸出檔名
csc /t:exe Program.cs # 主控台應用 (預設)
csc /t:winexe Program.cs # Windows 應用 (無主控台視窗)
csc /t:library MyLib.cs # 類別庫
csc /t:module Module.cs # 模組 (無資訊清單,供後續組合)
本章雖屬概覽,卻串聯了「從何而來(語言演進)、為何不同(比較)、能做什麼(應用類型)、核心長什麼樣(特性)、怎麼跑起來(編譯器)」。帶著這些輪廓,後續深入語法、類別設計、泛型、LINQ、非同步、ASP.NET Core 等主題時,就能更從容地定位知識坐標。學習程式語言,**「知其然,更知其所以然」**,方能舉一反三。