檢視型別與成員的定義

開發人員經常需要檢視他們在程式碼中使用的型別或類別成員的原始程式碼定義。 Visual Studio 中的 [移至定義] 和 [查看定義] 功能可讓您輕鬆地檢視型別或成員的定義。 如果無法取得原始程式碼,則改為顯示中繼資料。

移至定義

[移至定義] 功能可巡覽至類型或成員的來源,並在新的索引標籤中開啟結果。如果您是鍵盤使用者,請將文字游標放在符號名稱內的某個位置,然後按 F12。 如果您是滑鼠使用者,請選取右鍵功能表中的 [移至定義],或使用下節所述的 Ctrl+按一下滑鼠左鍵功能。

Ctrl+按一下滑鼠左鍵移至定義

Ctrl+按一下滑鼠左鍵,可讓滑鼠使用者快速存取 [移至定義]。 當您按 Ctrl 並將滑鼠指標移至類型和成員上方時,符號會變成可點選。 若要快速巡覽至符號的定義,請按 Ctrl 鍵,然後按一下它。 就是這麼簡單!

Mouse click go to definition animation

您可以變更按一下滑鼠左鍵 [移至定義] 的輔助按鍵,方法是移至 [工具]>[選項]>[文字編輯器]>[一般],然後從 [使用輔助按鍵] 下拉式清單選取 [Alt] 或 [Ctrl+Alt]。 您也可以停用滑鼠點按 [移至定義],方法是取消核取 [Enable mouse click to perform Go To Definition] (啟用滑鼠點按以執行移至定義) 核取方塊。

Enabling mouse-click go to definition

查看定義

[查看定義] 功能可讓您預覽類型的定義,而不需要離開編輯器中的目前位置。 如果您是鍵盤使用者,請將文字游標放在類型或成員名稱內的某個位置,然後按 Alt + F12。 如果您是使用滑鼠使用者,則可選取右鍵功能表中的 [查看定義]

若要啟用 Ctrl+按一下滑鼠左鍵功能,請移至 [工具]>[選項]>[文字編輯器]>[一般]。 選取 [Open definition in peek view] (在查看檢視中開啟定義) 選項,然後按一下 [確定] 關閉 [選項] 對話方塊。

Setting the mouse-click peek definition option

然後按 Ctrl (或 [選項] 中選取的輔助按鍵),然後按一下類型或成員。

Peek definition animation

如果您從快顯視窗查看另一個定義,則會啟動階層連結路徑;您可以使用快顯視窗上方的圓形和箭號進行巡覽。

如需詳細資訊,請參閱如何:使用查看定義 (Alt+F12) 檢視和編輯程式碼

中繼資料視為原始程式碼 (C#)

當無法取得您檢視的 C# 型別或成員的原始程式碼時,會改為顯示其中繼資料。 您可以查看所宣告的型別和成員,但無法查看其實作。

當您針對無法取得原始程式碼定義的項目執行 [移至定義] 或 [查看定義] 命令時,程式碼編輯器中會顯示包含該項目中繼資料 (顯示為原始程式碼) 之索引標籤文件的檢視。 後面加上 [來自中繼資料]的類型名稱會出現在文件的索引標籤上。

例如,如果對 Console 執行 [移至定義] 命令,Console 的中繼資料就會當做 C# 原始程式碼出現在程式碼編輯器中。 程式碼看起來像其宣告,但未顯示實作。

Metadata as Source

注意

當您嘗試對標記為內部的型別或成員執行 [移至定義] 或 [檢視定義] 命令時,Visual Studio 不會將它們的中繼資料顯示為原始程式碼,無論參考的組件是否為 Friend 組件。

檢視反編譯的原始定義而不是中繼資料 (C#)

您可以設定選項,以在檢視無法取得原始程式碼的 C# 類型或成員定義時,查看反向組譯的原始程式碼。 若要開啟此功能,請選擇功能表列中的 [工具]>[選項]。 然後,展開 [文字編輯器]>[C#]>[進階],再選取 [啟用巡覽至反編譯的原始碼]

Viewing a decompiled definition

注意

Visual Studio 使用 ILSpy 反編譯來重新建構方法主體。 第一次存取此功能時,您必須同意有關軟體授權及著作權與商標法相關的免責聲明。