Resharper 和 Rider 的奇淫技巧,你知道多少?
?.NET 開發(fā)中最令人印象深刻的生產(chǎn)力工具之一是ReSharper[1]。每次發(fā)布時(shí),我都對(duì)它的功能感到震驚。不要誤會(huì)我的意思,我喜歡 Visual Studio,而且它也變得越來(lái)越好。但每當(dāng)我認(rèn)為 Visual Studio 迎頭趕上時(shí),我就會(huì)發(fā)現(xiàn)一些令人驚嘆的新功能,讓我再次依賴 ReSharper 和Rider[2]。
因此,在這篇博文中,我將向您介紹 ReSharper 的 6 個(gè)更令人上癮的功能。那些你可能不知道的,但一旦你知道就不能沒有。
1. Ctrl + T、Ctrl + T + T、Ctrl + T + T + T
優(yōu)秀的Ctrl + T命令大家都知道,它可以讓你快速查找字段、文件和類型。但是,您可能不知道可以T多次單擊該按鈕。這使得它Ctrl + T + T和Ctrl + T + T + T. 第一個(gè)選項(xiàng)允許您只搜索類型。

第二個(gè)選項(xiàng)Ctrl + T + T + T允許您搜索解決方案中的任何文本。有點(diǎn)像 Visual Studio 的Ctrl + Shift + F,只是更好(以我的拙見)。

2. 打開 Ctrl + T 結(jié)果作為列表
在大型應(yīng)用程序中導(dǎo)航可能非常困難。您并不總是記得要查找的確切字段名稱?;蛘吣赡苓€記得您正在尋找?guī)в袉卧~ 的內(nèi)容Home,但是適合該搜索的字段和類的數(shù)量是巨大的。使用Ctrl + T僅顯示適合一個(gè)屏幕的第一批結(jié)果。但是,如果您搜索某些內(nèi)容并點(diǎn)擊Shift + Enter,您將在工具窗口中看到所有結(jié)果。就這樣:

現(xiàn)在,您可以在這些結(jié)果中快速滾動(dòng)或過(guò)濾以找到您的意思。這太方便了,我覺得我什至不配擁有它。
3. 變量值來(lái)源,值去向
下一個(gè)功能非常令人上癮,一旦您開始使用它,您將無(wú)法停止。
ReSharper 允許您檢查任何變量并查看所有可能的調(diào)用堆棧,您可以從哪里獲取它(作為參數(shù))以及它的去向(作為參數(shù))。讓我們從你從哪里得到它開始。要使用該功能,請(qǐng)使用Inspect this的Ctrl + Alt + Shift + A快捷方式或在右鍵單擊上下文菜單中找到Inspect。

單擊Value Origin將顯示如何recording接收的所有可能路徑。像這樣:

在這種情況下,我們得到了它作為方法的參數(shù)ShouldStopRecording,這可能從任何一種方法得到它AddRecordingResult,ContinueRecording,GetLastRecording,或GetRunningSessions。
要查看recording變量的所有可能目的地,請(qǐng)單擊Value Destination,它將顯示:

這顯示了這個(gè)變量將被使用或作為參數(shù)傳遞的所有地方。在這種情況下,您可以看到它僅ShouldStopRecording用于訪問其屬性。
這兩個(gè)功能都使代碼變得非常容易。無(wú)需使用按方法查找所有引用或查找用法,您將能夠找到特定變量的路徑。
4. Postfix 補(bǔ)全模板
大家都知道 Visual Studio 片段。如果您不知道,請(qǐng)查看我的另一篇文章您應(yīng)該知道的 Visual Studio 中的 5 個(gè)生產(chǎn)力技巧[3]。ReSharper 有一個(gè)類似的功能,允許您在輸入表達(dá)式后將其插入到模板中。這是一個(gè)例子。

一旦我點(diǎn)擊Enter或Tab,ReSharper 會(huì)自動(dòng)創(chuàng)建一個(gè)foreach語(yǔ)句。

這個(gè)技巧可用于任何集合。
這是另一個(gè)例子:

選擇if后綴將創(chuàng)建以下語(yǔ)句:

有很多這些,您可以在此處[4]查看完整列表。
5. 全解決方案分析
通過(guò)解決方案范圍的分析,ReSharper 不斷分析您的整個(gè)解決方案并巧妙地發(fā)現(xiàn)錯(cuò)誤和警告。這些都是編譯錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤。R# 在這方面很聰明。這可以用作一種健全的健康檢查。每當(dāng)您重構(gòu)大量代碼時(shí),此功能對(duì)于確保您沒有犯任何錯(cuò)誤非常有用。任何明顯的錯(cuò)誤是——R# 還沒有找到邏輯錯(cuò)誤,而不是開發(fā)人員。
這是它的樣子:

出于充分的理由,默認(rèn)情況下關(guān)閉解決方案范圍的分析。它吃掉了性能。至少在使用 Visual Studio + ReSharper 時(shí)。另一方面,如果您使用的是 Rider,您可能甚至不會(huì)注意到它已開啟。
6. 提取類
ReSharper 最令人印象深刻的事情之一是它的重構(gòu)功能。它們中的大多數(shù)都可以從Refactor This菜單中使用Ctrl + Shift + R快捷方式訪問。我最喜歡的重構(gòu)之一是Extract Class。它會(huì)將字段、屬性和方法等成員提取到一個(gè)新類中,該類將在原始類中創(chuàng)建為字段。下面是一個(gè)例子:

單擊Ctrl + Shift + R成員Sort 時(shí),會(huì)出現(xiàn)以下對(duì)話框:

您可以在此處選擇要提取的成員。R# 通過(guò)顯示用法來(lái)幫助您。在上面的例子中,Mean使用Sort和你可以一起提取它們。
一旦您選擇了提取的類的名稱(我選擇了Sorter)和對(duì)提取的引用的名稱 (?_sorter),您將得到以下結(jié)果:

這使得將大類分解為小類的常見操作變得更加容易。
就是這樣,享受快樂的編碼。
https://michaelscodingspot.com/productivity-in-resharper-and-rider/
References
[1]?ReSharper:?https://www.jetbrains.com/resharper/[2]?Rider:?https://www.jetbrains.com/rider/[3]?您應(yīng)該知道的 Visual Studio 中的 5 個(gè)生產(chǎn)力技巧:?https://michaelscodingspot.com/productivity-tips-in-visual-studio/[4]?此處:?https://www.jetbrains.com/help/resharper/Postfix_Templates.html#list
