☕ NEW! 完成新手任務即可參加抽獎!LINE 星巴克禮券等你拿,名額有限!        🎉 推廣活動:邀請好友註冊 DevLearn,累積推薦抽 LINE 星巴克禮券! 活動詳情 →        🔥 活動期間 2026/4/1 - 5/31 |已有 0 人參加       
C# 基礎 初學

🚀 C# 介紹與環境設置

📌 什麼是 C#?

C#(讀作 "C Sharp")是由微軟(Microsoft)在 2000 年推出的現代化程式語言。 它是一種強型別物件導向的語言,廣泛用於:

  • 🌐 網頁應用(ASP.NET Core)
  • 🖥️ 桌面應用(WPF、WinForms)
  • 🎮 遊戲開發(Unity)
  • 📱 手機應用(MAUI)
  • ☁️ 雲端服務(Azure)

C# 的歷史

年份 版本 重要功能
2002 C# 1.0 基本語言功能
2005 C# 2.0 泛型(Generics)
2007 C# 3.0 LINQ、Lambda
2012 C# 5.0 async/await
2019 C# 8.0 可空參考型別
2023 C# 12 主要建構子

C# 的特色

// C# 是強型別語言 — 每個變數都必須有明確的型別
int age = 25;          // 整數型別
string name = "小明"; // 字串型別
bool isStudent = true; // 布林型別

// C# 支援自動記憶體管理(垃圾回收 GC)
// 你不需要手動釋放記憶體,GC 會幫你處理

📌 安裝開發環境

第一步:安裝 .NET SDK

.NET SDK 是開發 C# 程式的必備工具包。

# 到 https://dotnet.microsoft.com/download 下載最新版 .NET SDK
# 安裝完成後,打開終端機(Terminal)確認安裝成功
dotnet --version  # 顯示已安裝的 .NET 版本號碼

第二步:安裝 VS Code

VS Code 是一個輕量但功能強大的程式碼編輯器。

# 到 https://code.visualstudio.com 下載 VS Code
# 安裝後,打開 VS Code 並安裝以下擴充功能:
# 1. C# Dev Kit — 提供 C# 語法高亮和智慧提示
# 2. .NET Install Tool — 管理 .NET 版本

第三步:確認環境

# 確認 dotnet 命令可以使用
dotnet --info  # 顯示完整的 .NET 環境資訊

📌 第一個程式:Hello World

建立新專案

# 建立一個新的主控台應用程式(Console App)
dotnet new console -n MyFirstApp  # -n 指定專案名稱

# 進入專案資料夾
cd MyFirstApp  # cd 是切換目錄的命令

# 執行程式
dotnet run  # 編譯並執行程式

程式碼詳解

// 這是 C# 最簡單的程式(頂層陳述式 Top-level statements)
// 從 C# 9 開始,你可以省略 namespace 和 Main 方法

// Console 是系統提供的類別,用來處理控制台輸入輸出
// WriteLine 是 Console 的方法,會印出文字並換行
Console.WriteLine("Hello, World!"); // 印出 Hello, World! 到螢幕

// 你也可以用 Write 方法(不換行)
Console.Write("你好,");  // 印出「你好,」但不換行
Console.Write("世界!");  // 接在同一行印出「世界!」

傳統寫法(了解即可)

// 這是 C# 9 之前的標準寫法
// using 關鍵字引入 System 命名空間
using System;

// namespace 定義命名空間,用來組織程式碼
namespace MyFirstApp
{
    // class 定義一個類別
    class Program
    {
        // Main 是程式的進入點(Entry Point)
        // static 表示不需要建立物件就能呼叫
        // void 表示這個方法不回傳任何值
        // string[] args 接收命令列參數
        static void Main(string[] args)
        {
            // 印出歡迎訊息
            Console.WriteLine("Hello, World!");
        }
    }
}

📌 常用 dotnet 命令

# 建立新專案
dotnet new console -n 專案名稱    # 建立主控台應用程式
dotnet new webapi -n 專案名稱     # 建立 Web API 專案
dotnet new mvc -n 專案名稱        # 建立 MVC 網頁專案

# 管理專案
dotnet build      # 編譯專案(將 C# 編譯成可執行檔)
dotnet run        # 編譯並執行專案
dotnet clean      # 清除編譯產生的檔案

# 管理套件(NuGet)
dotnet add package Newtonsoft.Json  # 安裝 JSON 處理套件
dotnet list package                 # 列出已安裝的套件
dotnet remove package 套件名稱     # 移除指定套件

📌 字串插值(String Interpolation)

// 字串插值是 C# 6 引入的功能,用 $ 符號開頭
string name = "小明";  // 宣告一個字串變數
int age = 20;            // 宣告一個整數變數

// 使用 $ 開頭,大括號 {} 內放入變數或運算式
Console.WriteLine($"我的名字是 {name},今年 {age} 歲");
// 輸出:我的名字是 小明,今年 20 歲

// 大括號內也可以放運算式
Console.WriteLine($"明年我就 {age + 1} 歲了");
// 輸出:明年我就 21 歲了

// 格式化數字
double price = 1234.5;  // 宣告一個雙精度浮點數
Console.WriteLine($"價格:{price:C}");   // C 格式 → 貨幣格式
Console.WriteLine($"價格:{price:F2}");  // F2 格式 → 小數點兩位

📌 使用者輸入

// Console.ReadLine() 會等待使用者輸入一行文字
Console.Write("請輸入你的名字:");  // 提示使用者
string? input = Console.ReadLine();   // 讀取使用者輸入(可能為 null)

// 用 ?? 運算子提供預設值(當 input 為 null 時使用 "訪客")
string userName = input ?? "訪客";

// 印出問候語
Console.WriteLine($"歡迎你,{userName}!");

// 讀取數字(需要轉換型別)
Console.Write("請輸入你的年齡:");       // 提示使用者
string? ageInput = Console.ReadLine();     // 讀取字串
int userAge = int.Parse(ageInput ?? "0"); // 將字串轉成整數

// 更安全的寫法:TryParse(轉換失敗不會拋出例外)
Console.Write("請輸入你的身高(cm):");    // 提示使用者
string? heightInput = Console.ReadLine();   // 讀取字串
if (int.TryParse(heightInput, out int height)) // TryParse 回傳是否成功
{
    Console.WriteLine($"你的身高是 {height} 公分"); // 轉換成功
}
else
{
    Console.WriteLine("輸入的不是有效數字!");       // 轉換失敗
}

🤔 我這樣寫為什麼會錯?

❌ 錯誤:忘記安裝 .NET SDK

# 錯誤訊息:'dotnet' is not recognized
# 原因:還沒安裝 .NET SDK,或是環境變數沒設好
# 解法:到 https://dotnet.microsoft.com/download 下載安裝

❌ 錯誤:大小寫搞混

// ❌ 錯誤:C# 區分大小寫!
console.writeline("Hello");  // console 和 writeline 開頭應該大寫

// ✅ 正確:
Console.WriteLine("Hello");  // Console 和 WriteLine 首字母大寫

❌ 錯誤:忘記分號

// ❌ 錯誤:每行陳述式結尾都要加分號
Console.WriteLine("Hello")   // 少了分號 → 編譯錯誤

// ✅ 正確:
Console.WriteLine("Hello");  // 記得加上分號 ;

❌ 錯誤:字串沒有用雙引號

// ❌ 錯誤:字串必須用雙引號包起來
string name = 小明;         // 編譯器會以為 小明 是變數名稱

// ✅ 正確:
string name = "小明";     // 用雙引號包起來才是字串

❌ 錯誤:在錯誤的目錄執行 dotnet run

# ❌ 錯誤:不在專案資料夾中執行
# 錯誤訊息:Couldn't find a project to run
# 解法:先 cd 到包含 .csproj 檔案的資料夾
cd MyFirstApp     # 切換到專案目錄
dotnet run        # 再執行程式

💡 大家的想法 · 0

載入中...
💬 即時聊天室 🟢 0 人在線
😀 😎 🤓 💻 🎮 🎸 🔥
➕ 新問題
📋 我的工單
💬 LINE 社群
🔒
需要註冊才能使用此功能
註冊帳號即可解鎖測驗、遊戲、簽到、筆記下載等所有功能,完全免費!
免費註冊