C# - 概覽

歡迎,有志成為程序員的各位!作為一位具有多年經驗的計算機科學教師,我非常高興能夠引導你們進入C#這個令人興奮的世界。如果你之前從未寫過一行代碼,也不用擔心——我們將從最基本的知識開始,逐步建立你的知識體系。讓我們一起來探索吧!

C# - Overview

C# 是什麼?

C#(發音為「C sharp」)是一種現代且面向對象的編程語言,由Microsoft開發。它設計得簡單、強大且靈活,對初學者和有經驗的開發者來說都是一個非常好的選擇。

可以把C#想像成程序員的瑞士軍刀——它幾乎可以做任何事情!從建立桌面應用到創建網站,再到開發遊戲,C#都能應對。

簡短歷史

C#誕生於21世紀初,由Anders Hejlsberg(如果你問我,他是一個編程天才)和他的團隊在Microsoft創建。他們希望將C++的強大與Visual Basic的簡單性結合起來,於是C#就這樣誕生了!

為什麼學習C#?

  1. 多用途性:正如我之前提到的,C#可以用於各種類型的應用程序。
  2. 廣大社群:有一個庞大的C#開發者社群準備幫助你。
  3. 就業機會:許多公司都在使用C#,學習它可以為你打開令人興奮的職業前景。
  4. 初學者友好:儘管C#功能強大,但它相對容易學習,特別是有像我這樣親切的導師!

你的第一個C#程序

讓我們來寫你的第一個C#程序!別擔心,這會很簡單,也會很有趣。

using System;

class HelloWorld
{
static void Main()
{
Console.WriteLine("Hello, World!");
}
}

讓我們來分解這段代碼:

  1. using System;告訴我們的程序使用System命名空間,其中包含基本功能。
  2. class HelloWorld定義了一個名為HelloWorld的類。把類想像成我們代碼的容器。
  3. static void Main()是我們程序的入口點。每個C#程序都需要一個Main方法。
  4. Console.WriteLine("Hello, World!");將文字"Hello, World!"打印到控制台。

當你運行這個程序時,你會在屏幕上看到"Hello, World!"。恭喜!你剛剛寫了你的第一個C#程序。

C#的強大編程特點

C#擁有許多強大的特點,讓它成為一款樂趣無窮的編程語言。讓我們來探索一些這些特點:

1. 面向對象編程(OOP)

C#是圍繞"對象"的概念建造的。把對象想像成現實世界中實體的虛擬表示。例如,如果我們正在開發一個遊戲,我們可能有玩家、敵人和物品的對象。

以下是一個表示汽車的類的簡單示例:

public class Car
{
public string Make { get; set; }
public string Model { get; set; }
public int Year { get; set; }

public void StartEngine()
{
Console.WriteLine("Vroom! The car is starting.");
}
}

在這個例子中,我們定義了一個Car類,它有屬性(Make, Model, Year)和方法(StartEngine)。我們可以這樣創建和使用Car對象:

Car myCar = new Car();
myCar.Make = "Toyota";
myCar.Model = "Corolla";
myCar.Year = 2022;
myCar.StartEngine(); // 輸出: Vroom! The car is starting.

2. 類型安全

C#是一種靜態類型的語言,這意味著在使用變量之前,你需要聲明它的類型。這有助於及早發現錯誤,使你的代碼更可靠。

int age = 25; // age只能保存整數值
string name = "John"; // name只能保存文本
bool isStudent = true; // isStudent只能為true或false

3. 垃圾回收

在C#中,你不必擔心手動釋放使用完畢的內存。語言有一個內置的垃圾回收器,它會自動清理未使用的對象,使得內存管理變得非常輕鬆。

4. LINQ(語言集成查詢)

LINQ是一個強大的特性,它允許你使用類似SQL的語法來查詢和操作數據。這就像擁有一種超能力,能夠輕鬆地與數據集合工作!

List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // 輸出: 2, 4, 6, 8, 10
}

5. 异步編程

C#使得編寫异步代碼變得非常簡單,這讓你的程序能夠在不凍結的狀態下同時執行多個任務。

async Task DownloadFileAsync(string url)
{
using (var client = new HttpClient())
{
string content = await client.GetStringAsync(url);
Console.WriteLine($"Downloaded {content.Length} characters");
}
}

C#中的方法

方法是編程中的動詞——它們是動作發生的地方!讓我們來看看C#中一些常見的方法類型:

方法類型 描述 示例
實例方法 屬於對象實例 myCar.StartEngine();
靜態方法 屬於類本身 Math.Round(3.14);
無返回值方法 不返回值 void PrintMessage() { ... }
返回值方法 返回一個值 int Add(int a, int b) { return a + b; }
异步方法 异步運行 async Task DownloadFileAsync() { ... }
扩展方法 添加到现有类型的函数 string.IsNullOrEmpty(myString)

結論

恭喜!你已經邁出了進入C#編程世界的第一步。我們從寫你的第一個"Hello, World!"程序到理解C#的一些強大特性,已經覆蓋了基礎知識。

記住,學習編程就像學習一門新語言——它需要時間和練習。如果一切不會立即清晰,不要氣餒。繼續實驗,嘗試寫你自己的程序,最重要的是,享受樂趣!

在我們的下一課,我們將深入探討C#的語法,並開始建立更複雜的程序。在那之前,請繼續編程並保持好奇心!

Credits: Image by storyset