教學:探索 C# 語言

這個教學教你 C#。 你寫了第一個 C# 程式,看到編譯和執行程式碼的成果。 它包含一系列以 「Hello World」 程式開頭的課程。 這些課程會教您 C# 語言的基本概念。

提示

程式新手? 從這裡開始——這個教學假設你沒有相關經驗。 來自另一種語言? 你可能會想快速瀏覽程式碼範例,然後直接跳到 C# 裡的數字 或 分支與迴圈。

在本教學課程中,您會:

  • 啟動一個帶有 C# 開發環境的 GitHub Codespace。
  • 打造你的第一個 C# 應用程式。
  • 建立並使用變數來儲存文字資料。
  • 使用帶有文字資料的執行時 API。

先決條件

您必須具備以下其中一項選項:

開放碼空間

要在教學環境中啟動 GitHub Codespace,請在瀏覽器中開啟 教學 codespace 的倉庫。 選擇綠色 程式碼 按鈕,然後進入 Codespaces 標籤。然後選擇 + 符號,利用這個環境建立新的程式碼空間。

執行您的第一個程式

  1. 當你的程式碼空間載入時,請在 教學 資料夾裡建立一個名為 hello-world.cs 的新檔案。

  2. 打開你的新檔案。

  3. 輸入或複製以下程式碼 hello-world.cs:

    Console.WriteLine("Hello, World!");
    
  4. 在整合的終端機視窗中,將 教學 資料夾設為目前的資料夾,然後執行你的程式:

    cd tutorials
    dotnet hello-world.cs
    

您執行了第一個 C# 程式。 這是一個簡單的程式,會印出「Hello World!」的訊息。它使用該 Console.WriteLine 方法來列印該訊息。 Console 是代表主控台視窗的類型。 WriteLine 是 Console 類型的方法,可將一行文字列印至該文字控制台。

讓我們繼續探索更多。 本課程的其餘部分會探索使用 string 類型,其代表 C# 中的文字。 如同 Console 類型,string 類型具有 方法。 string 方法能處理文字。

宣告和使用變數

你的第一個程式會在螢幕上印出 string 「Hello World!」。

提示

當您探索 C# 或任何程式設計語言時,您在撰寫程式代碼時犯了錯誤。 編譯器會發現這些錯誤並回報給你。 當輸出包含錯誤訊息時,請仔細查看範例程式碼和你 .cs 檔案中的程式碼,找出需要修正的地方。 該練習可協助您瞭解 C# 程式代碼的結構。 你也可以請 Copilot 幫你找出差異或發現錯誤。

您的第一個程式僅限於列印一則訊息。 您可以使用 變數撰寫更實用的程式。 變數 是一種符號,可用來使用不同的值執行相同的程序代碼。 讓我們試試看!

  1. 從下列程式代碼開始:

    string aFriend = "Bill";
    Console.WriteLine(aFriend);
    

    第一行會宣告變數,aFriend,併為其指派值 “Bill”。 第二行列印名稱。

  2. 您可以將不同的值指派給任何宣告的變數。 您可以將名稱更改為其中一位朋友的名字。 依照你已經加的程式碼,加上這兩行。 請確定您保留 aFriend 變數及其初始指派的宣告。

    重要

    請勿刪除 aFriend的宣告。

  3. 在前一編碼的末尾加入以下代碼:

    aFriend = "Maira";
    Console.WriteLine(aFriend);
    

    請注意,同一行程式代碼會根據儲存在 aFriend 變數中的值,列印兩個不同的訊息。 你可能會注意到最後兩則訊息中缺少「Hello」這個字。 現在讓我們來修正此問題。

  4. 修改那些用來列印訊息的程式碼行如下:

    Console.WriteLine("Hello " + aFriend);
    
  5. 再用 app dotnet hello-world.cs 再執行一次,看看結果。

    您已使用 + 從 變數 和 常數 字串建置字串。 有一個更好的方法。 您可以在 { 和 } 字元之間放置變數,以指示 C# 以變數的值取代該文字。 此過程稱為 字串插補。

  6. 如果您在字串的開頭引號之前加入 $,則可以在大括號之間的字串中包含變數,例如 aFriend。 試試看:

    Console.WriteLine($"Hello {aFriend}");
    
  7. 再用 app dotnet hello-world.cs 再執行一次,看看結果。 訊息應該是 「Hello Maira」,而不是 「Hello {aFriend}」。。

處理字串

你上次的編輯是你第一次看到字串可以做什麼。 讓我們進一步探索。

在大括弧之間,您可以使用不止一個變數。

  1. 請試試你應用程式底部的以下程式碼:

    string firstFriend = "Maria";
    string secondFriend = "Sage";
    Console.WriteLine($"My friends are {firstFriend} and {secondFriend}");
    

    字串大於字母集合。 你可以用 Length來求得字串的長度。 Length 是字串的 屬性,它會傳回該字串中的字元數。

  2. 請在應用程式底部加入以下程式碼:

    Console.WriteLine($"The name {firstFriend} has {firstFriend.Length} letters.");
    Console.WriteLine($"The name {secondFriend} has {secondFriend.Length} letters.");
    

提示

現在是自行探索的好時機。 您已瞭解 Console.WriteLine() 輸出文字到螢幕。 您已瞭解如何宣告變數,並將字串串連在一起。 在程式碼中多做實驗。 你的編輯器有個叫 IntelliSense 的功能,可以給你建議可以做什麼。 在 .中的 d 後面輸入 firstFriend。 您會看到可供使用之屬性和方法的建議清單。

您已使用 方法、Console.WriteLine來列印訊息。 方法 是實作某些動作的程式代碼區塊。 它有一個名稱,因此您可以存取它。

提示

了解更多: 深入探索 字串 ,或閱讀 C# 基礎部分的方法 與程式結構 。

移除字串中的空白

假設您的字串有您不想顯示的前置或尾端空格。 您要 移除 字串中的空格。 Trim方法及相關方法TrimStart並TrimEnd執行此任務。 使用這些方法去除開頭和結尾的空格。

  1. 請嘗試下列程式代碼:

    string greeting = "      Hello World!       ";
    Console.WriteLine($"[{greeting}]");
    
    string trimmedGreeting = greeting.TrimStart();
    Console.WriteLine($"[{trimmedGreeting}]");
    
    trimmedGreeting = greeting.TrimEnd();
    Console.WriteLine($"[{trimmedGreeting}]");
    
    trimmedGreeting = greeting.Trim();
    Console.WriteLine($"[{trimmedGreeting}]");
    

方括號 [ 和 ] 幫助你視覺化 Trim、TrimStart 和 TrimEnd 方法的作用。 括弧會顯示空格元開始和結束的位置。

此範例強化了在處理字串時幾個重要的概念。 操作字串的方法會傳回新的字串物件,而不是就地進行修改。 您可以看到每個 Trim 方法的呼叫都會傳回新的字串,但不會變更原始訊息。

搜尋並替換字串中的文字

你也可以使用其他方法來處理字串。 例如,你可以在編輯器或文字處理器中使用搜尋與替換指令。 Replace 方法會在字串中執行類似動作。 它會搜尋子字串,並以不同的文字取代它。 Replace 方法接受兩個 參數。 這些參數是括號之間的字串。 第一個字符串是要搜尋的文字。 第二個字串是用來替代它的文本。 為自己試試看。

  1. 新增此程序代碼。 在您開始輸入 .Re 並在 sayHello 變數之後時,鍵入以查看提示。

    string sayHello = "Hello World!";
    Console.WriteLine(sayHello);
    sayHello = sayHello.Replace("Hello", "Greetings");
    Console.WriteLine(sayHello);
    

    另外有兩種有用的方法可以將字串轉換成全大寫或全小寫。 請嘗試下列程序代碼。

  2. 請輸入以查看 IntelliSense 如何在您開始輸入時提供提示 To:

    Console.WriteLine(sayHello.ToUpper());
    Console.WriteLine(sayHello.ToLower());
    

    搜尋和取代 作業的另一部分是尋找字串中的文字。 您可以使用 Contains 方法來搜尋。 它會告訴您字串是否包含其中的子字串。

  3. 請試著下列程式代碼來探索 Contains:

    string songLyrics = "You say goodbye, and I say hello";
    Console.WriteLine(songLyrics.Contains("goodbye"));
    Console.WriteLine(songLyrics.Contains("greetings"));
    

    這個 Contains 方法會回傳一個 布林 值,告訴你是否找到你正在搜尋的字串。 布爾值 會儲存 true 或 false 值。 當顯示為文字輸出時,它們會分別大寫:True 和 False。 您可以在稍後的課程中深入瞭解 布爾值 值。

挑戰

兩種相似的方法, StartsWith 以及 EndsWith,也用於搜尋字串中的子字串。 這些方法會在字串的開頭或結尾找到子字串。 請嘗試修改先前的範例,以使用 StartsWith 和 EndsWith,而不是 Contains。 在字串開頭搜尋 「You」 或 「goodbye」。 在字串結尾搜尋 「hello」 或 「goodbye」。

注意

當您在測試字串末端的文字時,請注意標點符號。 如果字串以句號結尾,您必須檢查以句點結尾的字串。

您應該獲得 true,若開頭是 "You" 且結尾是 "hello";若開頭或結尾是 "goodbye",則獲得 false。

你有沒有想出類似以下程式碼的程式碼(展開查看答案):

string songLyrics = "You say goodbye, and I say hello";
Console.WriteLine(songLyrics.StartsWith("You"));
Console.WriteLine(songLyrics.StartsWith("goodbye"));

Console.WriteLine(songLyrics.EndsWith("hello"));
Console.WriteLine(songLyrics.EndsWith("goodbye"));

如需進一步閱讀 string 類型的資訊:

清理資源

GitHub 會在你 30 天不活躍後自動刪除你的 Codespace。 如果你打算繼續探索這個系列的更多教學,可以讓你的 Codespace 保持配置。 如果你準備好去 .NET 網站 下載 .NET SDK,你可以刪除你的 Codespace。 要刪除你的 Codespace,打開瀏覽器視窗並導航到 你的 Codespaces。 你應該會在視窗裡看到你的碼空間清單。 在學習教學程式碼空間的條目中點三個點(...)並選擇「刪除」。

後續步驟

繼續閱讀本系列的下一個教學,或探索 C# 基礎課程中的相關主題: