共用方式為


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 然後按 空格鍵 時,會出現完成清單。 IntelliSense 會根據程式碼中的內容,自動選取清單中的專案。 例如,IntelliSense 會自動從完成列表中選擇項目,用於宣告和方法中的 return 陳述式。

  • enum 關鍵字:當您在列舉指派的等號後按 空格 鍵時,會顯示完成清單。 IntelliSense 會根據程式碼中的內容,自動選取清單中的專案。 例如,IntelliSense 會在您輸入 return 關鍵字之後,以及當您進行宣告時,自動選取完成清單中的項目。

  • as 和 is 運算子:當您在輸入as 關鍵字之後按 is 時,IntelliSense 會自動顯示篩選的完成清單。

  • 事件:當您輸入關鍵字 event時,完成清單只會包含委派類型。

  • 參數說明:IntelliSense 會在您輸入參數時自動排序至符合參數的第一個方法多載。 如果有多個方法多載可用,您可以使用向上和向下箭頭來導覽至清單中下一個可能的多載。

最近使用的成員

IntelliSense 會記住您最近在快顯式 [列出成員] 方塊中選取的成員,以自動完成物件名稱。 下次使用 「成員清單」時,最近使用的成員會顯示在頂端。 IntelliSense 會在每個 Visual Studio 會話之間清除最近使用的成員的歷程記錄。

覆寫

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

AI 增強的 IntelliSense

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

自動代碼生成

新增方式

使用新增 IntelliSense 作業會自動將必要的using指令新增到您的程式碼檔案。 此功能使您能夠將注意力集中在正在編寫的程式碼上,而不是要求您將焦點轉移到程式碼的另一部分。

若要起始 新增使用 作業,請將游標放在無法解析的類型參考上。 例如,當您建立主控台應用程式並在 Main 方法的主體內新增 XmlReader 時,由於無法解析類型參考,該程式碼行上會出現紅色波浪線。 然後,您可以透過「快速動作」功能表呼叫「新增使用」作業。 只有當游標位於未解析的參照上時,才會顯示 using <命名空間> 功能表項目。

在此範例中,若要自動將using指令新增至程式碼,請選取錯誤燈泡圖示,然後選擇using System.Xml;

螢幕擷取畫面,顯示具有預覽影像的新增使用作業。

貼上時新增遺漏的 using 指令

當您將類型貼到程式碼檔案時,IntelliSense 可以自動將遺漏的 using 指示詞新增至程式碼。 此功能透過在將某種類型貼到檔案中時,自動新增遺失的 using 指令,從而節省您的時間。

若要啟用此功能:

  1. 選取 [工具]> [選項]
  2. 從左窗格中選取 文字編輯器>C# (或 Visual Basic) >進階
  3. 使用指令底下,選擇貼上時新增遺失的 using 指令

移除和排序使用

移除和排序使用」 選項會排序和移除 usingextern 告,而不變更原始碼的行為。 隨著時間的推移,源文件可能會因為不必要和無組織 using 的指令而變得太大且難以閱讀。 「 移除和排序使用」 選項會移除未使用的 using 指示詞來壓縮原始程式碼,並藉由排序來改善可讀性。

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

實作介面

IntelliSense 提供選項,可協助您在程式碼編輯器中工作時實作 介面 。 一般而言,若要正確實作介面,您必須為類別中介面的每個成員建立方法宣告。 在類別宣告中輸入介面名稱之後,IntelliSense 會顯示 [快速動作] 燈泡。 燈泡可讓您選擇使用明確或隱含命名來自動實作介面。 在明確命名下,方法宣告會攜帶介面的名稱。 在隱含命名下,方法宣告不會指出它們所屬的介面。 明確命名的介面方法只能透過介面實例存取,而不能透過類別實例存取。 如需詳細資訊,請參閱 明確介面實作

實作介面會產生滿足介面所需的最小方法存根數目。 如果基類已經實作介面的一部分,則不會重新生成這些存根代碼。

實作抽象基類

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

實作抽象基類 」特性所產生的方法 Stub 是由檔案 MethodStub.snippet 中定義的程式碼片段建模。 程式碼片段是可修改的。 如需詳細資訊,請參閱 逐步解說:在 Visual Studio 中建立程式碼片段

從使用量產生

「從使用關係產生」功能可讓您在定義類別和成員之前使用它們。 您可以為您想要使用但未定義的任何類別、建構函式、方法、屬性、欄位或列舉產生存根。 您可以產生新的類型和成員,而無需在程式碼中留下您目前的位置。 這樣做可以最大限度地減少對工作流程的干擾。

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

  • 選取未定義的識別碼。 識別碼下方會出現「 快速動作」 錯誤燈泡。 選取錯誤燈泡。

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

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

可以出現以下選項:

  • 產生屬性

  • 產生欄位

  • 產生方法

  • 產生類別

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

產生事件處理常式

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

當您在+=檔案中的事件欄位之後輸入運算子時,IntelliSense 會提示您選擇按 Tab 鍵。 這會插入一個新的委派實例,指向用來處理事件的方法。

螢幕擷取畫面,顯示提示的掛接事件處理常式方法。

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

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

如果您再次按 Tab 鍵,IntelliSense 會新增具有正確簽章的方法存根,並將游標放在事件處理常式的主體中。

如果 IntelliSense 所建立的新委派參考現有的事件處理常式,IntelliSense 會在工具提示中傳達此資訊。 然後,您可以修改此參照;文字已在程式碼編輯器中選取。 否則,自動事件連結現在已完成。

備註

使用「檢視」功能表 (Ctrl+) 上的-」指令,以返回事件連結陳述式。