IntelliSense 是一種程式碼完成輔助工具,其中包含可協助您深入瞭解您正在使用的程式碼、追蹤您輸入的參數,以及僅按幾下按鍵即可新增屬性和方法呼叫的功能。
這些功能包括:
IntelliSense 的許多層面都是語言特定的。 如需不同語言的 IntelliSense 詳細資訊,請參閱 相關內容 一節中列出的文章。
列出成員
當您輸入觸發字元(例如在 Managed 程式碼中輸入 . 或在 C++ 中輸入 ::)之後,會顯示類型(或命名空間)的有效成員清單。 如果您繼續鍵入字元,則會過濾清單,以僅包含以這些字元開頭的成員,或名稱中 任何 單字開頭以這些字元開頭的成員。 IntelliSense 也會執行 駝峰式命名法 比對,因此您只需在成員名稱中輸入每個駝峰式字詞的第一個字母即可查看相符項目。
選取項目後,您可以按 Tab 鍵或鍵入空格,將其插入程式碼中。 如果您選取一個項目並鍵入句點,則該項目會連同句點一起出現,這會顯示另一個成員清單。 當您選取項目時,但在插入項目之前,您會看到該項目的 「快速資訊 」。
在成員清單中,左側的圖示代表成員類型,例如命名空間、類別、函數或變數。 清單可能很長,因此您可以按 PgUp 和 PgDn 在清單中向上或向下移動。
您可以輸入 Ctrl+J、選擇 [編輯>IntelliSense>清單成員],或選擇編輯器工具列上的 [列出成員 ] 按鈕,手動叫用 [清單成員] 功能。 在空白行或可辨識範圍之外叫用時,清單會在全域命名空間中顯示符號。
若要預設關閉「清單成員」,除非特別叫用,否則不會顯示,請移至「工具>選項」「>文字編輯器>」「所有語言」,然後取消選取「自動列出成員」。 如果您想只關閉特定語言的「列出成員」功能,請前往該語言的 「一般 」設定。
您也可以變更為建議模式,在這種模式下,只有您鍵入的文字才會插入程式碼中。 例如,如果您輸入不在清單中的識別碼,然後按 Tab,則該項目會在完成模式中取代鍵入的識別碼。 若要在完成模式和建議模式之間切換,請按 Ctrl+Alt+空格鍵,或選擇 [編輯>IntelliSense>切換完成模式]。
您也可以變更為建議模式,在這種模式下,只有您鍵入的文字才會插入程式碼中。 例如,如果您輸入不在清單中的識別碼,然後按 Tab 鍵,則在完成模式中,該項目將取代鍵入的識別碼。 若要在完成模式和建議模式之間切換,請按 Ctrl++ Alt空格鍵,或選擇 [編輯>IntelliSense>] 在自動和僅限索引標籤的 IntelliSense 完成之間切換。
參數資訊
參數資訊 提供方法、屬性泛型類型參數 (在 C# 中) 或範本 (在 C++ 中) 所需的參數數目、名稱和類型的相關資訊。
粗體參數表示鍵入函數時所需的下一個參數。 對於多載的函數,您可以使用 向上 鍵和 向下 鍵來檢視函數多載的替代參數資訊。
當您使用 XML 文件註解註釋函數和參數時,註解會顯示為「參數資訊」。 如需詳細資訊,請參閱 提供 XML 程式碼註解。
您可以選擇 [編輯>IntelliSense>參數資訊]、按 Ctrl+Shift+空格鍵,或選擇編輯器工具列上的 [ 參數資訊 ] 按鈕,以手動叫用 [參數資訊]。
快速諮詢
快速資訊 會顯示程式碼中任何識別碼的完整宣告。
當您從「清單成員」方塊中選取成員時,也會顯示「快速資訊」。
您可以選擇 [編輯>IntelliSense>快速資訊]、按 Ctrl+K、 Ctrl+I,或選擇編輯器工具列上的 [ 快速資訊 ] 按鈕,以手動叫用 [快速資訊]。
如果函式多載,IntelliSense 可能不會顯示所有形式的多載資訊。
您可以導覽至 [工具>選項>][文字編輯器>] [C/C++>Advanced],並將 [自動快速資訊] 設定為 false,以關閉 C++ 程式碼的 [快速資訊]。
完整的單詞
在您輸入足夠的字元以消除歧義後,完字功能會完成變數、命令或函數名稱的其餘部分。 您可以選擇 [編輯>IntelliSense>完整字詞]、按 Ctrl+空格鍵,或選擇編輯器工具列上的 [完整字詞 ] 按鈕來叫用 [完整字詞]。
IntelliSense 選項
IntelliSense 選項預設為開啟。 若要關閉它們,請移至 工具>選項>文字編輯器>所有語言 並取消選取 參數資訊 或 自動列出成員 如果您不需要 列出成員 功能。
小提示
如果您想要變更 Visual Studio 中使用者介面元素的外觀,請移至 [工具>] [選項>] [環境>字型和色彩]。 如需這些設定以及如何與之互動的詳細資訊,請參閱字 型和色彩、環境、選項對話方塊。
IntelliSense 圖示
IntelliSense 中的圖示可以使用圖示修飾元來傳達其他意義。 這些是疊加在物件圖示上方的星星、心形和鎖,分別代表受保護、內部或私人。
| Icon | 可及性 | Description |
|---|---|---|
|
公開課 | 訪問不受限制。 |
|
受保護類別 | 存取僅限於包含類別或衍生自包含類別的類型。 |
|
受保護的內部類別 | 存取權僅限於衍生自包含類別的目前元件或類型。 |
|
內部課程 | 存取權僅限於目前程式集。 |
|
私人課堂 | 存取僅限於當前元件中的內含類別或從內含類別衍生的類型。 (從 C# 7.2 開始提供。 |
IntelliSense 疑難排解
在某些情況下,IntelliSense 選項可能無法如您預期般運作。
游標位於程式碼錯誤下方:如果游標上方的程式碼中存在不完整的函式或其他錯誤,您可能無法使用 IntelliSense,因為 IntelliSense 可能無法剖解析程式碼元素。 您可以將適用的程式碼註解掉來解決此問題。
游標位於程式碼註解中:如果游標位於來源檔案的註解中,則無法使用 IntelliSense。
游標位於字串常值中:如果游標位於字串常值周圍的引號中,則無法使用 IntelliSense,如下列範例所示:
MessageBox( hWnd, "String literal|")自動選項已關閉:根據預設,IntelliSense 會自動運作,但您可以停用它。 即使停用自動陳述式完成,您也可以叫用 IntelliSense 功能。