了解如何使用程式碼編輯器

在這個 10 分鐘的 Visual Studio 程式碼編輯器簡介中,我們會將程式碼新增至檔案,以了解 Visual Studio 讓撰寫、導覽和了解程式碼更加輕鬆的一些方式。

提示

如果您尚未安裝 Visual Studio,請前往 Visual Studio 下載頁面免費進行安裝。

如果您尚未安裝 Visual Studio,請前往 Visual Studio 下載頁面免費進行安裝。

本文假設您已熟悉某一種程式設計語言。 如果您還不熟悉,建議您先查看一種程式設計語言的快速入門,例如使用 PythonC# 建立 Web 應用程式,或是使用 Visual BasicC++ 建立主控台應用程式。

提示

若要繼續遵循這篇文章,請確定您已為 Visual Studio 選取 C# 設定。 如需選取整合式開發環境 (IDE) 的設定資訊,請參閱選取環境設定

建立新的程式碼檔

從建立新檔案並在其中新增一些程式碼開始。

  1. 開啟 Visual Studio。 在開始視窗中按 Esc 或按一下 [不使用程式碼繼續],以開啟開發環境。

  2. 從功能表列的 [檔案] 功能表中,選擇 [新增]>[檔案]

  3. 在 [新增檔案] 對話方塊的 [一般] 類別下,選擇 [Visual C# 類別],然後選擇 [開啟]

    使用 C# 類別的基本架構,在編輯器中開啟新的檔案。 (請注意,我們不需要建立完整的 Visual Studio 專案,才能享有程式碼編輯器提供的一些優點,您只需要一份程式碼檔案!)

    Screenshot of a C# code file in Visual Studio.

  1. 開啟 Visual Studio。 選取 Esc 鍵,或在開始視窗上選擇 [不使用程式碼繼續],以開啟開發環境。

  2. 從功能表列的 [檔案] 功能表,選擇 [新增]>[檔案],或選取 Ctrl+N 鍵。

  3. 在 [新增檔案] 對話方塊的 [一般] 類別下,選擇 [C# 類別],然後選擇 [開啟]

    使用 C# 類別的基本架構,在編輯器中開啟新的檔案。

    Screenshot of a C# code file in Visual Studio 2022.

使用 GitHub Copilot

GitHub Copilot 可作為 AI 配對程式設計人員,以在編輯器中即時撰寫程式代碼時,提供自動完成樣式的程式代碼和內容感知多行程式代碼建議。 GitHub Copilot 會將自然語言提示轉換成編碼建議,包括批注和方法名稱。 您可以直接在編輯器中檢視並納入 GitHub Copilot 的建議。

讓我們使用 Copilot 來產生程式代碼建議:

  1. 將游標放在檔案的最後右大括弧 } 正下方。
  2. 輸入自然語言批註: // Add a method to add two numbersEnter
  3. GitHub Copilot 會為您產生程式代碼建議。 建議的實作會以灰色文字顯示。
  4. 若要接受建議,請選取 [索引卷標]。

Animated screenshot that shows the code suggestions generated by GitHub Copilot for the user comment.

在 Visual Studio 中開始使用 GitHub Copilot。 請注意,需要 Visual Studio 2022 17.5.5 或更新版本。

使用程式碼片段

Visual Studio 提供實用的「程式碼片段」,讓您可以用來快速且輕鬆地產生常用的程式碼區塊。 程式碼片段適用於不同的程式設計語言 (包括 C#、Visual Basic 和 C++)。

請在檔案中新增 C# void Main 程式碼片段。

  1. 請將游標放在檔案中最後一個右大括弧 } 的正上方,然後鍵入 svm 字元 (svm 表示 static void MainMain() 方法是 C# 應用程式的進入點)。

    快顯對話方塊出現,內有 svm 程式碼片段的相關資訊。

    Screenshot of an IntelliSense pop-up for a code snippet in Visual Studio.

  2. 按兩次 Tab 鍵,以插入程式碼片段。

    您會看到在檔案中新增 static void Main() 方法簽章。

可用的程式碼片段會因不同的程式設計語言而異。 您可以選擇 [編輯]>[IntelliSense]>[插入程式碼片段],然後選擇您語言的資料夾,以查看程式設計語言的可用程式碼片段。 針對 C#,清單如下:

Screenshot of an IntelliSense pop-up for a C# code snippet list.

  1. 請將游標放在檔案中最後一個右大括弧 } 的正上方,然後鍵入 svm 字元。

    快顯對話方塊出現,內有 svm 程式碼片段的相關資訊。

    Screenshot of an IntelliSense pop-up for a code snippet in Visual Studio 2022.

  2. 按兩次 Tab 鍵,以插入程式碼片段。

    您會看到在檔案中新增 static void Main() 方法簽章。 Main() 方法是 C# 應用程式的進入點。

可用的程式碼片段會因不同的程式設計語言而異。 您可以選擇 [編輯]>[IntelliSense]>[插入程式碼片段],或選取 Ctrl+K, Ctrl+X 鍵,然後選擇程式設計語言的資料夾,以查看程式設計語言的可用程式碼片段。 針對 C#,程式碼片段清單如下:

Screenshot of an IntelliSense pop-up for a C# code snippet list.

此清單包含的程式碼片段可用於建立類別建構函式for 迴圈、ifswitch 陳述式等。

註解化程式碼

工具列是 Visual Studio 功能表列下的按鈕列,有助您提高撰寫程式碼的效率。 例如,您可以切換 IntelliSense 完成模式 (IntelliSense 是程式碼撰寫的輔助工具,可顯示其他項目中符合的方法清單),增加或減少行的縮排,也可以為不要編譯的程式碼加上註解。 在本節中,我們會為一些程式碼加上註解。

Screenshot of the Editor toolbar in Visual Studio.

  1. 將下列程式碼貼入 Main() 方法主體。

    // _words is a string array that we'll sort alphabetically
    string[] _words = {
        "the",
        "quick",
        "brown",
        "fox",
        "jumps"
    };
    
    string[] morewords = {
        "over",
        "the",
        "lazy",
        "dog"
    };
    
    IEnumerable<string> query = from word in _words
                                orderby word.Length
                                select word;
    
  2. 我們目前不會使用 morewords 變數,但之後可能會用到,所以我們不想要完全將其刪除。 相反地,請將這些行註解化。 選取 morewords 的整個定義,直到結尾分號為止,然後選擇工具列上的 [為所選行加上註解] 按鈕。 如果您習慣使用鍵盤,請按 Ctrl+KCtrl+C

    Screenshot of the Comment out button in the Editor toolbar in Visual Studio.

    C# 註解字元 // 會新增至每個選取行的開頭,以將程式碼註解化。

[文字編輯器] 工具列是 Visual Studio 功能表列下的按鈕列,有助您提高撰寫程式碼的效率。 例如,您可以切換 IntelliSense 完成模式、增加或減少行縮排,也可以為不要編譯的程式碼加上註解。

Screenshot of the Text Editor toolbar in Visual Studio 2022.

讓我們註解化一些程式碼。

  1. 將下列程式碼貼入 Main() 方法主體。

    // someWords is a string array.
    string[] someWords = {
        "the",
        "quick",
        "brown",
        "fox",
        "jumps"
    };
    
    string[] moreWords = {
        "over",
        "the",
        "lazy",
        "dog"
    };
    
    // Alphabetically sort the words.
    IEnumerable<string> query = from word in someWords
                                orderby word
                                select word;
    
  2. 我們不會使用 moreWords 變數,但稍後可能會使用它,因此不會想要將它刪除。 相反地,讓我們將這些行註解化。 選取 moreWords 的整個定義,直到結尾分號為止,然後選擇 [文字編輯器] 工具列上的 [為所選行加上註解] 按鈕。 如果您習慣使用鍵盤,請按 Ctrl+KCtrl+C

    Screenshot of the Comment out button in the Text Editor toolbar in Visual Studio 2022.

    C# 註解字元 // 會新增至每個選取行的開頭,以將程式碼註解化。

    當您想要取消註解程式碼行時,您可以選取這些行,然後選擇 [文字編輯器] 工具列上的 [取消註解選取的行] 按鈕。 如果您習慣使用鍵盤,請按 Ctrl+KCtrl+U

    Screenshot of the Uncomment button in the Text Editor toolbar in Visual Studio 2022.

摺疊程式碼區塊

我們不想要看到所產生的 Class1 具有空白建構函式,所以為了整理我們的程式碼檢視,讓我們將其摺疊。 選擇建構函式第一行邊緣中其內有減號的小型灰色方塊。 或者,如果您偏好使用鍵盤,請將游標放在建構函式程式碼中的任何位置,然後按 Ctrl+MCtrl+M

Screenshot of the Outlining collapse button in the Text Editor toolbar in Visual Studio.

程式碼區塊只會摺疊到第一行,並且後面接著省略符號 (...)。 若要再次展開程式碼區塊,請按一下現在其內有加號的相同灰色方塊,或再次按 Ctrl+MCtrl+M。 這項功能稱為大綱,而且特別適用於摺疊較長的方法或整個類別。

我們不想要看到所產生的 Class1 具有空白建構函式,所以為了整理我們的程式碼檢視,讓我們將其摺疊。 選擇建構函式第一行邊緣中其內有減號的小型灰色方塊。 或者,如果您偏好使用鍵盤,請將游標放在建構函式程式碼中的任何位置,然後選取 Ctrl+MCtrl+M 鍵。

Screenshot of the Outlining collapse button in the Text Editor toolbar in Visual Studio 2022.

程式碼區塊只會摺疊到第一行,並且後面接著省略符號 (...)。 若要再次展開程式碼區塊,請選取現在其內有加號的相同灰色方塊,或再次按 Ctrl+MCtrl+M。 這項功能稱為大綱,而且特別適用於摺疊較長的方法或整個類別。

檢視符號定義

Visual Studio 編輯器讓檢查類型、方法等等的定義變得十分輕鬆。其中一種方式是導覽至包含定義的檔案,例如,在參考符號的任何位置選擇 [移至定義]。 不會將焦點移離所處理檔案的較快速方式是使用查看定義。 讓我們查看 string 類型的定義。

  1. 以滑鼠右鍵按一下任何出現的 string,然後從內容功能表選擇 [查看定義]。 或者,您也可以按 Alt+F12

    快顯視窗隨即出現,並內含 String 類別的定義。 您可以在快顯視窗內捲動,或甚至查看已查看程式碼中另一種類型的定義。

    Screenshot of a Peek definition window in Visual Studio.

  2. 選擇快顯視窗右上方含 "x" 的小型方塊,以關閉查看的定義視窗。

Visual Studio 編輯器讓檢查類型、方法或變數的定義變得十分輕鬆。 其中一種方式是移至定義 (無論位於哪個檔案),其做法是選擇 [移至定義],或在參考符號的任何地方選取 F12 鍵。 不會將焦點移開所處理程式碼的較快速方式是使用瞄核定義

讓我們查看 string 類型的定義。

  1. 以滑鼠右鍵按一下任何出現的 string,然後從內容功能表選擇 [查看定義]。 或者,選取 Alt+F12 鍵。

    快顯視窗隨即出現,並內含 String 類別的定義。 您可以在快顯視窗內捲動,或甚至查看已查看程式碼中另一種類型的定義。

    Screenshot of the Peek definition window in Visual Studio 2022.

  2. 選擇快顯視窗右上方含 "x" 的小型方塊,以關閉瞄核定義視窗。

使用 IntelliSense 自動完成文字

IntelliSense 是您撰寫程式碼時的重要資源。 它可以顯示類型可用成員的相關資訊,或方法之不同多載的參數詳細資料。 在您鍵入足夠的字元來釐清文字之後,也可以使用 IntelliSense 自動完成文字。 讓我們新增一行程式碼,將已排序的字串列印至主控台視窗,這是程式輸出的標準目標位置。

  1. query 變數下方,開始鍵入下列程式碼:

    foreach (string str in qu
    

    您會看到 IntelliSense 示範 query 符號的 [快速諮詢]

    Screenshot of an IntelliSense word completion pop-up in Visual Studio.

  2. 若要使用 IntelliSense 的文字完成功能來插入 query這個字的其餘部分,請按 Tab 鍵。

  3. 關閉程式碼區塊,使其看起來如下列程式碼。 您甚至可以再次練習使用程式碼片段,方法是輸入 cw,然後按兩次 Tab 鍵以產生 Console.WriteLine 程式碼。

    foreach (string str in query)
    {
       Console.WriteLine(str);
    }
    

IntelliSense 是您撰寫程式碼時的重要資源。 它可以顯示類型可用成員的相關資訊,或方法之不同多載的參數詳細資料。 在您鍵入足夠的字元來釐清文字之後,也可以使用 IntelliSense 自動完成文字。

讓我們新增一行程式碼,將已排序的字串列印至主控台視窗,這是程式輸出的標準目標位置。

  1. query 變數下方,開始鍵入下列程式碼:

    foreach (string str in qu
    

    您會看到所出現的 IntelliSense 快顯方塊包含 query 符號的相關資訊。

    Screenshot of an IntelliSense word completion pop-up in Visual Studio 2022.

  2. 若要使用 IntelliSense 的文字自動完成功能來插入 query 這個字的其餘部分,請選取 Tab 鍵。

  3. 關閉程式碼區塊,使其看起來如下列程式碼。 您可以進一步練習使用程式碼片段,方法是輸入 cw,然後按兩次 Tab 鍵以產生 Console.WriteLine 陳述式。

    foreach (string str in query)
    {
       Console.WriteLine(str);
    }
    

重構名稱

沒有人第一次就取得正確的程式碼,而且您可能想要變更的其中一個項目就是變數或方法的名稱。 讓我們來試試看 Visual Studio 的重構功能,以將 _words 變數重新命名為 words

  1. 將資料指標放在 _words 變數定義上方,然後從右鍵功能表或操作功能表中選擇 [重新命名],或按 Ctrl+RCtrl+R

    快顯 [重新命名] 對話方塊會出現在編輯器右上方。

  2. 輸入所需名稱 words。 請注意,也會自動重新命名查詢中 words 的參考。 按 Enter 鍵之前,請選取 [重新命名] 快顯方塊中的 [包括註解] 核取方塊。

    Screenshot of a Rename dialog box in Visual Studio.

  3. Enter

    出現的這兩個 words 已重新命名,以及程式碼註解中的 words 參考。

沒有人第一次就取得正確的程式碼,而且您可能想要變更的其中一個項目就是變數或方法的名稱。 讓我們來試試看 Visual Studio 的重構功能,以將 someWords 變數重新命名為 unsortedWords

  1. 將資料指標放在 someWords 變數的定義上方,然後從右鍵功能表或捷徑功能表中選擇 [重新命名],或選取 F2 鍵。

    [重新命名] 對話方塊會出現在編輯器右上方。

    Screenshot of the Rename pop-up box within the editor of Visual Studio 2022.

  2. 輸入所需的名稱 unsortedWords。 您會看見 query 指派陳述式中 unsortedWords 的參考也會自動重新命名。 按 Enter 之前,請選取 [重新命名] 快顯方塊中的 [包括註解] 核取方塊。

    Screenshot of the Rename pop-up box in Visual Studio 2022.

  3. 選取 Enter 鍵。

    您的程式碼中出現的這兩個 someWords 已重新命名,以及程式碼註解中的 someWords 文字。

下一步

另請參閱