C# IntelliSense

C# IntelliSense 是特定語言的程式碼完成輔助工具。 在程式碼編輯器中撰寫 C# 程式碼,並在即時模式命令視窗中進行偵錯時,可使用它。

自動完成清單

C# 中的 IntelliSense 完成清單包含來自清單成員和自動完成文字等的語彙基元。 它可以讓您快速存取:

  • 類型或命名空間的成員

  • 變數、命令及函式名稱

  • 程式碼片段

  • 語言關鍵字

  • 擴充方法

C# 的自動完成清單會篩選排除不相關的權杖,並根據內容預先選取權杖。 如需詳細資訊,請參閱篩選後的完成清單

完成清單中的程式碼片段

C# 完成清單包含程式碼片段,可以協助您在程式中輕鬆地插入預先定義的程式碼主體。 完成清單中顯示為程式碼片段捷徑文字的程式碼片段。 如需 C# 中所提供之預設程式碼片段的詳細資訊,請參閱 C# 程式碼片段

完成清單中的語言關鍵字

自動完成清單包含 C# 語言關鍵字,可協助您將它們插入程式。 如需 C# 語言關鍵字的詳細資訊,請參閱 C# 關鍵字

完成清單中的擴充方法

C# 的完成清單包含範圍內的擴充方法。

擴充方法與執行個體方法使用不同的圖示。 當同名的執行個體方法與擴充方法都在範圍中時,完成清單會顯示擴充方法圖示。

注意

若為 String 物件,自動完成清單不會顯示所有擴充方法。

篩選後的自動完成清單

IntelliSense 會利用篩選條件,將不必要的成員從完成名單中移除。 C# 會篩選針對下列項目所顯示的完成清單:

  • 介面與基底類別:IntelliSense 會自動從介面與基底類別自動完成清單移除不必要的項目。移除的項目包括類別宣告基底,以及介面清單和限制式清單。 例如,列舉不會出現在基底類別的自動完成清單,因為列舉不能用於基底類別。 基底類別的自動完成清單只包含介面和命名空間。 如果您在清單中選取一個項目,然後輸入一個逗號,IntelliSense 會將基底類別從自動完成清單移除。 這樣做是因為 C# 不支援多重繼承。 限制式子句也會發生相同的行為。

  • 屬性:將屬性套用至類型時會篩選自動完成清單,讓清單只包括從含有這些類型的命名空間繼承而來之類型。 例如: Attribute

  • Catch 子句:自動完成清單只會顯示有效的 try-catch 關鍵字。

  • 物件初始設定式:只有能夠初始化的成員會出現在自動完成清單。

  • new 關鍵字:鍵入 new 然後按下 [Space] 鍵时,会出現自動完成清單。 IntelliSense 會根據程式碼內容,自動在清單選取一個項目。 例如,IntelliSense 會針對宣告及方法中的 return 陳述式自動選取自動完成清單中的項目。

  • enum 關鍵字:在列舉指派的等號之後按下 [Space] 鍵時,会出現自動完成清單。 IntelliSense 會根據程式碼內容,自動在清單選取一個項目。 例如,键入 return 關鍵字並執行宣告時,IntelliSense 會自動在自動完成清單選取項目。

  • as 和 is 運算子:鍵入 asis 關鍵字後按下 [Space] 键時,IntelliSense 會自動顯示篩選後的自動完成清單。

  • 事件:鍵入關鍵字 event 時,自動完成清單僅包含委派類型。

  • 參數輔助說明:IntelliSense 會自動排序到符合您所輸入之參數的第一個方法多載。 如有多個方法多載,您可以使用向上鍵與向下鍵巡覽至清單中下一個可能的多載。

最近使用的成員

IntelliSense 會記住您最近在 [列出成員] 快顯方塊中選取的成員,自動完成物件名稱。 下次使用 [成員清單] 時,最近使用過的成員就會顯示在頂端。 IntelliSense 會在每個 Visual Studio 工作階段之間,清除最近使用過的成員記錄。

override

鍵入 [override],然後按下 [Space] 键時,IntelliSense 會在快顯清單方塊中顯示所有可以覆寫的有效基底類別成員。 在 override 之後輸入方法的傳回型別,可提示 IntelliSense 僅顯示會傳回相同型別的方法。 如果 IntelliSense 找不到任何相符項目,會顯示所有基底類別成員。

由 AI 增強的 IntelliSense

Visual Studio IntelliCode 提供由人工智慧增強的 IntelliSense 自動完成清單。 IntelliCode 可預測要使用哪個最可能正確的 API,而不僅僅是按字母順序排列來呈現成員清單。 它會使用您目前的程式碼內容和模式,以提供動態清單。

自動產生程式碼

加入 using

新增 using 這個 IntelliSense 作業會自動將必要的 using 指示詞新增至程式碼檔案。 這項功能可讓您專注在自己所撰寫的程式碼上,而不需要將焦點轉移到其他部分的程式碼。

若要發起 [新增 using] 作業,請將資料指標放在無法解析的型別參考。 例如,建立主控台應用程式,然後將 XmlReader 新增至 Main 方法主體時,該行程式碼就會出現紅色波形曲線,因為無法解析型別參考。 然後,可透過 [快速動作] 功能表來叫用 [新增 using] 作業。 只有當資料指標位於未解析的參考時,才會顯示 [使用<命名空間>] 功能表項目。

就這個例子而言,若要將 using 指示詞自動新增至程式碼,請先選取錯誤燈泡圖示,然後選擇 [using System.Xml;]

螢幕擷取畫面,其中顯示了隨附預覽影像的「新增 using」作業。

貼上時新增缺少的 Using 指示詞

當您將類型貼到程式碼檔案時,IntelliSense 會自動將遺漏 using 指示詞新增至程式碼。 此功能藉由將類型貼到檔案時,將遺漏 using 指示詞的工作自動化,藉以節省時間。

若要啟用此功能:

  1. 選取 [工具]> [選項]
  2. 從左窗格選取 [文本編輯器]> [C#] (或 [Visual Basic]) > [進階]
  3. 在 [使用指示詞] 下,選取 [貼上時新增缺少的 using 指示詞]

移除和排序 Using

[移除和排序 Using] 選項會排序並移除 usingextern 宣告,但不變更原始程式碼的行為。 由於有不必要且缺乏組織的 using 指示詞,來源檔案經過一段時間會變大,而且難以閱讀。 [移除和排序 Using] 選項可移除未使用的 using 指示詞來精簡原始程式碼,並加以排序來改善可讀性。

若要使用此選項,請從選單列選取 [編輯]> [IntelliSense]> [排序方式],或在程式碼編輯器中按下滑鼠右鍵,然後選取 [移除和排序方式]

實作介面

在程式碼編輯器中工作時,IntelliSense 可提供協助您實作介面的選項。 一般來說,若要正確地實作介面,必須為類別中介面的每位成員建立方法宣告。 IntelliSense 會在您於類別宣告中鍵入介面名稱後,顯示 [快速動作] 燈泡。 您可利用燈泡,選擇要使用明確或隱含命名的方式進行自動實作介面。 在明確命名下,方法宣告會帶有介面的名稱。 在隱含命名下,方法宣告不會指出其所屬介面。 明確命名的介面方法只可透過介面執行個體而不是透過類別執行個體加以存取。 如需詳細資訊,請參閱明確介面實作

實作介面將會產生滿足介面所需之方法虛設常式的數目下限。 如果基底類別實作部分的介面,則不會重新產生那些虛設常式。

實作抽象基底類別

在使用程式碼編輯器時,IntelliSense 提供您可自動實作抽象基底類別成員的選項。 一般而言,實作抽象基底類別的成員需要針對衍生類別中抽象基底類別的每個方法建立新的方法定義。 IntelliSense 會在您於類別宣告中鍵入抽象基底類別名稱後,顯示 [快速動作] 燈泡。 燈泡提供您自動實作基底類別方法的選項。

[實作抽象基底類別] 功能所產生的方法虛設常式是由定義在 MethodStub.snippet 檔案中的程式碼片段所模式化。 程式碼片段是可以修改的。 如需詳細資訊,請參閱逐步解說:在 Visual Studio 中建立程式碼片段

使用時產生

[使用時產生] 功能可讓您直接使用類別和成員,而不需要先行定義。 您可以為任何想要使用但尚未定義的類別、建構函式、方法、屬性、欄位或列舉,產生虛設常式。 您可以產生新類型和成員,不用離開目前在程式碼中的位置。 這麼做可將對工作流程的干擾降至最低。

每個未定義的識別碼下都會顯示紅色波形曲線。 將滑鼠指標停留在識別碼時,工具提示中就會出現錯誤訊息。 若要顯示適當的選項,請使用下列其中一項程序:

  • 選取未定義的識別碼。 [快速動作] 錯誤燈泡會出現在識別碼下。 選取錯誤燈泡。

  • 選取未定義的識別碼,然後按 [Ctrl]+[句號] (.)。

  • 以滑鼠右鍵按一下未定義的識別碼,然後選取 [快速動作及重構]

下列選項可能會出現:

  • 產生屬性

  • 產生欄位

  • 產生方法

  • 產生類別

  • 產生新的類型 (針對類別、結構、介面或列舉)

產生事件處理常式

在程式碼編輯器中,IntelliSense 可協助您將方法 (事件處理常式) 連結到事件欄位。

當您在 .cs 檔案的事件欄位後面鍵入 += 運算子時,IntelliSense 會提示您按 Tab 鍵的選項。 這會插入委派的新執行個體,指向處理事件的方法。

螢幕擷取畫面,其中顯示了提示的連結事件處理常式方法。

如果按 [Tab] 鍵,IntelliSense 會自動為您完成陳述式,並在程式碼編輯器中將事件處理常式參考顯示為選取的文字。 若要完成自動事件連結,IntelliSense 會提示您再次按 Tab 鍵,為事件處理常式建立空白的虛設常式。

螢幕擷取畫面,其中顯示了產生的事件處理常式方法。

如果再按一次 [Tab] 鍵,IntelliSense 就會新增含有正確簽名的方法虛設常式,並將資料指標放在事件處理常式的主體。

如果 IntelliSense 建立的新委派參考的是現有的事件處理常式,IntelliSense 就會在工具提示中傳達這項資訊。 接著您就可以修改此參考,程式碼編輯器中已選取該文字。 否則,自動事件連結即於此刻完成。

注意

使用 [檢視] 功能表上的 [向後巡覽] 命令 ([Ctrl]+-),返回事件連結陳述式。