2017 年 11 月

第 33 卷,第 11 期

本文章是由機器翻譯。

Visual Studio - 在 Visual Studio for Mac 中進行程式碼編輯與偵錯

Alessandro Del Del| 2017 年 11 月

Visual Studio for Mac 是 microsoft 完全意公司的行動裝置-首先,雲端優先願景的強大、 新的原生開發環境。它可協助您建置跨平台應用程式使用 Xamarin 和.NET Core — 和使用 Unity 遊戲,使用您現有的.NET 技巧和您最愛的程式語言,例如 C# 和 F #。您會發現簡介 Visual Studio 在 Mac msdn.com/magazine/mt790182。在本文中,我將焦點放在一些程式碼編輯器中的強大功能,將偵錯工具,可協助您提升產能。

Roslyn 供電的程式碼編輯器

適用於 Mac 的 visual Studio 可讓您在 C# 和 F # macOS 撰寫的程式碼。這可能是因為 IDE 會利用.NET 編譯器平台也稱為"Roslyn"的專案 (github.com/dotnet/roslyn)。Roslyn 提供開放原始碼跨平台.NET 編譯器豐富的程式碼分析應用程式開發介面公開 (expose)。Visual Studio 2015 及 Windows 上的 2017年,如同 Roslyn 提供 Visual Studio 中的程式碼編輯器 for Mac、 語法顏色標示、 IntelliSense、 即時程式碼問題的偵測、 修正和重構功能,提供增強的程式碼撰寫體驗。官方文件說明如何在一般情況下使用程式碼修正和重構 (bit.ly/2jKt69D),因此,本文將著重更明確地說在功能和功能,例如產生的型別,移除重複程式碼中,導覽程式碼中,新增自訂的語言和程式碼片段的支援。所有這些功能都是使用 Xamarin 和.NET Core 專案。

產生類型上作業

讓您撰寫程式碼,而不會遺失您在使用中編輯器的焦點時產生新的型別 nicest 的產能功能,在程式碼編輯器的其中一個。例如,您可以撰寫名稱的型別,並不存在,而且當程式碼編輯器中反白顯示程式碼問題的型別名稱,您可以以滑鼠右鍵按一下它 (或按 Alt + Enter),選取快速檢修 |產生類型。圖 1顯示基礎產生呼叫 Person 類型的範例。

產生新的型別時在使用中的編輯器

圖 1 產生新型別時在使用中的編輯器

第一個選項,產生類別 '人員' 中新的檔案,將會產生新的類別稱為人以新檔案,稱為 Person.cs 內內部修飾詞。第二個選項,產生類別 '人員',將會產生新的類別稱為人員與目前檔案內的內部修飾詞。第三個選項,產生的巢狀類別 '人員',將會產生新的私用類別稱為巢狀類型 (在此情況下,會產生新的類別內 Program 類別) 的程式碼編輯器中目前使用中的人員。您接著可以變更內部或私人的修飾詞是以手動方式或以滑鼠右鍵按一下修飾詞仍選取 [快速檢修。在所有情況下,新的類別會產生含有空的建構函式。第四個選項,產生新的輸入,改為顯示的對話方塊,您可以指定哪些輸入您想要建立 (類別、 介面或列舉型別),存取修飾詞和目的地。您不是限制為此,您可以使用相同的技巧,將成員新增至新產生的型別。您可以直接指派或叫用的屬性、 欄位或方法不尚未存在,而且會利用可輕鬆,如下所示加入一個快速修正方法圖 2,其示範如何加入稱為 LastName 人員類別的新屬性。產生變數 'LastName' 選項提供不同的建議,根據目前的內容。

產生新的成員

圖 2 產生新的成員

在此情況下,程式碼會進行設定,讓程式碼編輯器會建議您在產生新的屬性或欄位。根據程式碼,程式碼編輯器將也指派適當的型別新產生的成員,這表示它將會產生字串類型的屬性 (或欄位)。程式碼編輯器可以分析方法引動過程,和產生相符的方法簽章。這項功能是重構工具,並可協助您保持為您撰寫程式碼的程式碼的一部分。

移除多餘的程式碼

適用於 Mac 的 Visual Studio 中的程式碼編輯器也反白顯示的多餘的程式碼 — 不必要且不使用程式碼。多餘的程式碼是容易識別,因為它會變成灰色。在幕後多餘的程式碼會根據多餘的程式碼才會被視為問題會造成某些來源分析規則反白顯示。(您可以控制這些規則,但這不在此範圍)。 大部分的情況下,您將找到的多餘的程式碼不需要為基礎的範例使用指示詞,但多餘的程式碼辨識並不限於此。比方說,空的建構函式和內部的修飾詞會反白顯示為備援中圖 3

移除多餘的程式碼

圖 3 移除多餘的程式碼

如果某些多餘的程式碼,您認得所淡的色彩,以滑鼠右鍵按一下然後,您可以選取快速檢修,Visual Studio 會顯示將會移除不必要的程式碼的程式碼修正。此外,您會看到稱為可讓您的選項] 子功能表:

  • 隱藏目前問題的偵測。
  • Visual Studio 喜好設定中設定進一步的分析規則。
  • 適用於在文件、 專案或方案層級相同類型的多個問題的程式碼修正。

同樣地,在前面範例中,您可輕鬆地修正備援內部型別定義修飾詞 (內部是事實上,在 C# 中的預設修飾詞)。此技術適用於任何多餘的程式碼編輯器中反白顯示的分析規則。

導覽程式碼

導覽程式碼檔案之間,以及程式碼檔案中的成員之間會相當普片並大幅擁有內建的功能強大的巡覽工具協助產能。適用於 Mac 的 visual Studio 提供強大工具,可讓您更輕鬆地瀏覽檔案、 類型和成員之間的數的字。首先,您可以快速之間移動程式碼檔案,按下控制項 + Tab。這個動作會顯示快顯視窗,您可以在其中看到您的方案中的檔案清單。按住控制項,並按 Tab 鍵一次循環清單向下,然後放開時,所選取的檔案會開啟在編輯器中。來源巡覽程式碼,為下一個小節討論較不為人知生產力功能會非常有用。

[尋找所有參考,瀏覽工具

尋找所有參考工具可讓您擷取的類型或成員在方案中的所有參考。若要查看作用中的這項工具,只要在程式碼編輯器中的型別或成員名稱上按一下滑鼠右鍵,然後選取 [尋找所有參考。中所示,將會顯示搜尋結果輸入板中的參考圖 4

尋找類型或成員參考

圖 4 尋找類型或成員參考

在搜尋結果板,您可以看到 (從左到右) 包含參考,包含位置,包含參考的物件和原始程式檔的完整路徑名稱的來源文字的程式碼檔案的專案。您可以按兩下參考和程式碼編輯器會開啟適當的程式碼檔案,並將游標置於選取的項目。請注意如何來源中的程式碼的文字資料行有基本語法顏色標示。尋找所有參考都是非常強大,但有時您可能想要篩選搜尋特定型別和成員的特性為基礎。若要這麼做,您可以使用瀏覽工具,以滑鼠右鍵按一下類型或成員,然後選取 [瀏覽您叫用。您將會看到顯示下列搜尋選項] 子功能表:

尋找參考的所有多載尋找所有參考的方法和其多載。

基底符號可讓您尋找的基底型別和叫用瀏覽此類型繼承自或實作的介面清單。如果方法是瀏覽會發現目前的方法覆寫的方法清單。

衍生符號可讓您尋找繼承自叫用瀏覽型別之型別的清單。在方法的情況下找到正在覆寫的一個叫用瀏覽的方法清單。

擴充方法尋找所有類型的擴充方法叫用的您瀏覽,定義目前的方案中。

成員多載類似於擴充方法,但找到目前方案中所定義的方法多載的清單。

實作成員,如果上叫用抽象類別或介面,顯示類型和成員的清單類型或介面的實作。

瀏覽工具會尋找所有參考完全一樣的搜尋結果板中顯示搜尋結果。

捲軸] 和 [迷你地圖模式

程式碼編輯器的捲軸顯示色彩代表的標記程式碼的問題,例如警告和錯誤、 中斷點、 ToDo 項目,以及如果使用中的檔案包含錯誤,黃色,如果使用中的檔案包含警告或綠色如果紅色的頂端的彩色的點偵測不到任何問題。此外,捲軸提供所謂的迷你地圖模式。啟用此模式時,捲軸顯示的原始程式碼,以輕鬆瀏覽,預覽中所示圖 5

捲軸迷你地圖模式

圖 5 捲軸迷你地圖模式

您可以用滑鼠右鍵按一下捲軸,然後選取 [顯示迷你地圖啟用迷你地圖模式。您可以按一下地圖上的區域,程式碼編輯器會將游標移到適當的點。若要停用迷你地圖模式,您捲軸上按一下滑鼠右鍵,並選取 [顯示工作。迷你地圖模式特別適合用於長檔案,並協助您已將整個檔案的視覺表示法。

瀏覽程式碼檔案中的物件

Visual Studio for Mac 提供視覺化的方式輕鬆地瀏覽型別和程式碼檔案中的成員。每個程式碼編輯器] 視窗會顯示階層連結列,您可以按一下來查看使用中的編輯器中定義之類型的清單當您選取的類型時,其他的索引標籤可讓您顯示其成員的清單。此外,您可以使用文件大綱板取得使用中的檔案中的類型結構的視覺表示法 (請參閱圖 6)。

瀏覽程式碼檔案中的物件

圖 6 瀏覽的物件,在程式碼檔案

請注意不同的圖示代表不同種類的成員。您可能已經知道其功能,以顯示在 UI 的視覺階層的文件大綱板,但您也可以使用它來取得類型的結構,也就是很有幫助的檢視。您可以直接按兩下文件大綱內的物件,編輯器會將游標移到它的定義。

使用程式碼片段

Visual Studio for Mac 支援 IntelliSense 程式碼片段,您可以自訂以符合您需求的預先撰寫的程式碼區塊範本。如果您曾經使用 Visual Studio 在 Windows 上,您已經知道程式碼片段。在 Visual Studio for Mac,您有兩個選項可插入的程式碼片段。第一個選項是以滑鼠右鍵按一下程式碼編輯器,然後選取 [插入範本。可用的程式碼片段的清單會出現,而且您只選取您需要的一個。當您輸入時,第二個選項揀選從 IntelliSense 完成清單的程式碼片段。圖 7顯示範例程式碼片段反白顯示的位置 (您按 Tab 鍵兩次插入程式碼片段)。

加入程式碼片段

圖 7 新增程式碼片段

程式碼片段會表示具有 (...) 圖示,使其成為在立即辨識。在這兩種情況下,工具提示會描述程式碼片段的用途,當您將滑鼠停留在其名稱,使用滑鼠。Visual Studio for Mac 也可讓您建立新的自訂程式碼片段,並編輯現有的從 IDE,而不需外部工具中。若要完成這項作業,選取在 Visual Studio 功能表上,然後在 [喜好設定] 對話方塊中的找出並選取 [程式碼片段項目文字編輯器下的喜好設定。那里,您會看到一份依語言的程式碼片段。如果您選取現有的程式碼片段,您只要按 [編輯] 按鈕來編輯程式碼。如果您僅在按一下 [新增],您必須建立新的程式碼片段的選項。這是在 [新範本] 對話方塊,您提供的鍵盤快速鍵、 描述、 MIME 類型、 語言群組和當然,原始碼。圖 8顯示範例。

建立自訂程式碼片段

圖 8 建立自訂程式碼片段

請注意,而 $selected$ $end$ 運算式分隔目前的程式碼片段,將 $ 符號用來標示更換時,識別項。當您將標記識別項的取代時,您也可以提供的識別項本身,例如其預設值和描述其意義,在對話方塊右邊的方塊中的工具提示上的其他資訊。當您完成時,只要按一下 [確定],然後關閉喜好設定對話方塊。此時,新的程式碼片段是程式碼片段的文件庫中,並準備好可供在透過 IntelliSense 程式碼編輯器。值得注意的是您可以編輯現有的程式碼片段,如果其中一個尚無法使用指派的鍵盤快速鍵。這可讓您輸入程式碼編輯器中的鍵盤快速鍵,並更快插入程式碼片段。如果您和我一樣,並經常使用的程式碼片段,擁有建立從 IDE 中的選項將會節省大量的時間。

新增自訂的語言

您一定會喜歡 Visual Studio 中適用於 Mac 的事情之一是能夠加入新的語言所未含括現成的文法以 TextMate 和適文字的既定標準為基礎。事實上,Visual Studio for Mac 支援兩個標準,並允許將新增語言套件組合提供編輯功能,例如語法顏色標示、 程式碼片段和文字自動完成。例如,假設您想要加入編輯 Swift 檔案,可能非常有用,在 mac 上的支援語法在 TextMate 或適文字中,安裝 Swift 的語言套件組合,並再將語言套件組合封裝匯出至磁碟。然後您可以匯入的語言套件組合 Visual Studio for mac。若要達成此目的,您可以使用喜好設定] 對話方塊的 [語言套件組合] 節點。這裡您可以按一下 [新增],並選取之前匯出的語言套件。此時,您可以開啟.swift 檔案 (或其他檔案類型,根據您所匯入的組合),並充分利用功能,例如語法顏色標示和摺疊的程式碼區塊。

程式碼編輯器也可讓您插入程式碼片段,如果您選取的語言套件組合可以包含任何。很明顯地,編譯原始程式檔或建置和發佈外部語言套件組合為基礎的應用程式,不支援 Visual Studio for Mac。您可以,而是自動執行外部工具,例如編譯器中使用 [編輯自訂工具命令選項] 功能表。

偵錯的產能,填補和偵錯類別

偵錯是非常重要,而且適用於 Mac 的 Visual Studio 隨附的每個開發人員需要有效率的方式建置高品質應用程式的第一級偵錯工具類型。官方文件集 (bit.ly/2xgJkx0) 描述最常使用的工具,例如中斷點、 資料視覺化檢視和條件式流程控制。我要描述您可能想要知道,特別是如果您熟悉 Windows 上的 Visual Studio 偵錯,您會看到相同的工具,在 mac 上一些其他 nice 功能讓我們開始 System.Diagnostics.Debug 類別,它可讓您列印在運算式評估應用程式輸出板從 C# 程式碼,而不會中斷應用程式執行。假設您有.NET Core 主控台應用程式等待使用者輸入,下列程式碼:

string inputString = Console.ReadLine();
Debug.WriteLine($"The entered string is {inputString.Length} characters long");

Debug.WriteLine 方法會列印運算式,以便在應用程式輸出板,如中所示圖 9,而不需要停止應用程式執行。在此情況下,運算式是字串插值包含使用者所輸入字串的長度。

評估的結果會顯示在應用程式輸出填補

圖 9 評估的結果會顯示在應用程式輸出填補

而且您不限於 WriteLine 方法;事實上,您可以使用所有其他支援的方法,例如 Assert、 Equals、 失敗、 寫入、 WriteIf 和 WriteLineIf (請參閱bit.ly/2ydS8jO如需詳細資訊)。

在 Visual Studio for Mac,有其他方式來評估運算式並偵錯時檢查物件值。您可以使用中斷點和資料的視覺化檢視,但您也可以使用監看式盤,其目的是為了提供方法來以視覺方式監視變數、 方法和運算式。在中斷模式時,[監看式] 視窗會自動啟用,您可以按一下內文中加入新的物件來監視。圖 10示範根據屬性的值。

監視物件與監看式填補

圖 10 監視物件與監看式填補

對於您監視每個物件,您可以查看其成員和其值。您也可以按一下值,並將它變更,因此您可以看到您的程式碼具有不同的物件值的行為方式。監看式板仍提供資料視覺化檢視透過紅眼] 和 [鉛筆圖示,可以識別捷徑。您也可以找到其他兩個偵錯填補非常有用: 執行緒板和 [呼叫堆疊填補,同時顯示在圖 11

監視執行緒和方法呼叫的執行緒和呼叫堆疊填補

圖 11 監視執行緒和方法呼叫的執行緒和呼叫堆疊填補

執行緒板會顯示執行中執行緒的清單,並有助於了解您的應用程式不同的執行緒暫停的所在的程式碼位置。它會顯示執行緒 ID、 名稱和指的是每個執行緒的程式碼的位置。如果已經不存在,您也可以輸入執行緒的名稱。呼叫堆疊填補說明的方法呼叫階層,並讓它也會顯示不在您的方案; 中的程式碼的呼叫例如,interop 框架。若要達成此目的,您板上按一下滑鼠右鍵,然後啟用 [顯示外部程式碼] 選項。利用所有這些您尚未完成且功能強大的偵錯工具套件,以及中斷點、 區域變數板及資料視覺化檢視,讓您深入控制.NET Core 和 Xamarin 方案。

總結

Visual Studio for Mac 不僅可協助您建置跨平台應用程式的行動裝置和雲端使用 Xamarin 和.NET 核心上 macOS,它也提供您要撰寫高品質的程式碼的所有產能工具。這包括產能功能,可讓您慣用的軟體和此 IDE,特別是如果您曾經使用 Visual Studio Windows 上的偵錯工具和程式碼編輯器中。


Alessandro Del 唯一* 已被 Microsoft MVP 2008 之後。獎勵 MVP 的五倍的年份,他有撰寫許多書籍、 有聲、 說明影片及有關使用 Visual Studio.NET 開發文件。Del 唯一適用於身為資深.NET 開發人員,將焦點放在.NET 和行動裝置應用程式開發,定型集和顧問。他有最近撰寫即將發行的活頁簿,稱為 「 開頭 Visual Studio for Mac 」 (bit.ly/2hsRxYx)。您可以在 Twitter 上關注他: @progalex。*

非常感謝下列 Microsoft 技術專家檢閱這篇文章:Mikayla Hutchinson


MSDN Magazine 論壇中的這篇文章的討論