Resharper使用詳解(轉) ReSharper製做Template幫助咱們快速輸入代碼 ReSharper致使Visual Studio緩慢?

萬惡的360文檔

解除複製的限制html

Ctrl + Shift + i 打開控制檯,也能夠鼠標右鍵,選最後一個檢查也能夠打開控制檯,輸入:java

setInterval = null;   //將內置無限循環函數設置爲空
setTimeout = null;   //將內置定時循環函數設置爲空
$("*").unbind();  //將全部標籤的監聽事件解除綁定

 

執行後隨便複製;c#

更快捷的方式:F12=>F1,選中禁用js瀏覽器

===========      內容較多,推薦文章就放在前面,方便平時查看  ============服務器

ReSharper製做Template幫助咱們快速輸入代碼

簡要說明:模版位置:Resharper =》 Tools  =》Templates Explorer ,而後找到c#,就能夠本身添加了框架

ReSharper致使Visual Studio緩慢?

=============================       正文開始                  ===============================================編輯器

http://www.360doc.com/content/16/0411/19/7014874_549790915.shtmlide

 

Resharper是我一直很是喜歡的工具。響噹噹的名聲絕對不是吹牛皮吹出來的。若是你的公司在尋找一個提升開發人員效率的工具,那麼首選應該是Resharper,這一筆投入是值得的。若是你想知道爲何,那麼請看一看個人一系列上手指南。函數


Resharper進階一:簡要介紹 
Resharper進階二:快速定位 
Resharper進階三:快速完成 
Resharper進階四:萬能的Alt+Enter 
Resharper進階五:高效的代碼結構調整 
Resharper進階六:重構纔是王道(上) 
Resharper進階七:重構纔是王道(下) 
Resharper進階八:加強的瀏覽功能工具

這一系列不是對每一個功能的中文幫助,而是我對開發中可能涉及的功能需求,利用Resharper來完成。有些是Visual Studio有的,可是作的很差,有些是沒有而Resharper發明的。總的目的都只有一個,就是加快你編寫代碼的速度。畢竟,咱們的終極目標是在5點 半前心滿意足的關上電腦回家。

誠然,學會一個新的語言,或者一個新的工具,都有一個上手的問題。但願個人文章可以幫助你儘快地熟悉Resharper。在熟悉了它之後,你使用鼠 標或者是無效擊鍵的頻率會大大地下降。固然這也須要對visual studio自己的使用有必定的基礎,畢竟它Resharper是創建在這麼強大的一個IDE基礎上的。

進階一:簡要介紹

 面對這樣一個問題:爲何.net可以比java更加快速的完成開發?恐怕最大的優點在於Microsoft提供了一個無比強大的IDE。它的強大在於適 用於各個層次的開發人員。當你仍是一隻小小鳥的時候,能夠學會drag&drop,當你開始寫代碼的時候,你會發現設計器生成的代碼是多麼愚蠢和 臃腫。當你本身可以寫出乾淨的代碼時,可能不再想切換到設計器中去了(切換/F7)。我相信咱們中的大部分人,即便是最資深的Windows開發人員, 用VS寫代碼比用記事本的效率要高不少,由於咱們畢竟須要IDE的幫助以提升咱們的生產力。可是在那個沒有Resharper的年代裏,你的生產力頂多停 留在兩個輪子的時代,另兩個輪子,只有在你熟悉了Resharper之後才能轉動起來。

Resharper能帶給你的效率提高如此之高,以致於在我訂閱的全部.net專家的blog裏面,全部的人都在關注它。要知道他們都不是通常的 coder,大多數是CTO或者技術總監。當我三個月前開始使用Resharper時,想要搜到一些中文的介紹,或者是經驗性的文章卻十分困難。大多數人 彷佛不關心它的存在。博客園裏充斥着由於安裝Resharper而拖慢系統,致使VS不穩定,機器響應速度降低,VS啓動速度降低等等的論調。幸運的是, 這些在我這裏都沒有遇到,也許是由於2G的內存的緣故,反正devenv.exe所佔的200~300m內存並無使我感受機器在變慢,並且個人VS幾乎 是一直運行中,沒有一會關閉一會打開的時候,因此我只須要忍受Resharper在加載時的半分鐘初始化一次就夠了。相比於它能帶給你的效率提高,這些問 題都是微不足道的(一家之言)。

若是你在VS環境下寫代碼時幾乎不用快捷鍵,那我以爲你沒有必要往下看了。由於Resharper是經過快捷鍵來提高你的效率的。可是相信我,若是你曾經在星際中一遍一遍被人虐的話,你應該能體會到快捷鍵帶來多麼大的變化。

首先在安裝完Resharper以後,你主要經過三種方式用到或看到它:

一是在菜單欄上,若是是3.0版本的話,它會默認的屏蔽掉「重構」菜單欄,也就是說你按Alt+R的時候,彈出的是Resharper的下拉菜單而不是「重構」,爲何?由於你再也不須要「重構」菜單了。若是是之前版本,好比2.0,彷佛須要您手工的完成這一步,方法以下:

工具——自定義——重排命令,而後把「重構」菜單刪除,絕不猶豫地!

你能夠簡單地這樣體驗一下:Alt+R,N,回車,就能夠在當前項目中添加一個類,還記得之前你是怎麼作的嗎?在解決方案資源管理器中選中一個項目,而後右鍵,在長長的彈出菜單中選擇:添加——類,若是你的電腦夠慢的話,在3秒鐘以後纔會彈出一個對話框來問你文件名。

另外一種方式是:看到豎直滾動條了嗎?在它的右邊多出一個邊框來,上方是一個「綠色/黃色/紅色」的方框,而邊框上會出現一道一道紅的橙的橫槓。什麼 意思:當紅槓出現時,代表你的代碼在那個位置出現了錯誤,若是是橙槓,代表那是一個警告,多半是沒有檢測null值或者聲明後未使用之類。

若是當前文檔的全部錯誤和警告都獲得了適當的處理,則不會再出現橫槓,而最頂上的方框也會變成綠色;

若是沒有錯誤但有警告,則是黃色,這時編譯能夠經過;

若是那個方框是紅色,則表示有編譯通不過的錯誤,這時你應該經過點擊紅槓,去修改您的代碼。若是你即便編譯,也會報錯並沒有法生成。這樣作使你在寫代 碼時就能及時得發現你的錯誤,而不須要等到編譯時。這樣作也使你的效率獲得了提升。由於編譯至少要耗去您半分鐘的時間,而且強烈的讀寫您的硬盤,特別在你 的硬盤轉速慢時,好比筆記本上,這一過程是那麼的使人心痛。

第三種接觸到Resharper的天然是快捷鍵了。右鍵菜單固然也有不少的功能,可是那太弱智了,太慢了。咱們須要的是專業,咱們用的工具定位不是 打毛衣的大媽,而是開發的專業人員,若是你連快捷鍵都沒法掌握,那真的得對你的開發技巧打一個大大的問號。試想一下這個場景,當你腦子裏冒出這個念頭, 啊,這個類,應該提出接口來,要這個方法,這個,和這個,還有這兩個事件。啊,不行,我如今就得提,否則就忘了。我得新建一個接口,點哪一個來着。啊,在哪 裏新建……建好了,對了我要提取哪幾個方法來着。(我暈死)許多時候你的念頭都是一閃而過的,須要你的操做也相應的跟上。這個操做在Resharper就 是,把光標移動到類名上,而後點Ctrl+Shift+R,除了你想要的提取接口,其餘的重構功能也一目瞭然。並且遠比VS自帶的要快。

至於右鍵,若是你剛開始實在記不住快捷鍵,只能使用它了,或者Alt+R,實際上它也要比右鍵菜單快一點點。

真正激動人心的是在隨着你逐漸熟悉Resharper之後,可以帶來的諸多方便之處,我將會在接下來的一系列隨筆中講述。

進階二:快速定位

摘要

快速代碼定位的核心就是三個功能:

  •     轉到定義:Ctrl+B;
  •     查找全部使用:Alt+F7;
  •     從這裏瀏覽:Ctrl+Shift+G.

轉到定義

當你的光標在一個變量上時,按下Ctrl+B就會跳轉到這個變量聲明的地方。這多是某一個字段,某一個方法的參數或者一個局部變量。

當你的光標在一個類型上時,按下Ctrl+B可能發生兩種狀況,一是當這個類型的定義在你的項目中有源代碼時,會跳轉到這個源代碼文件。若是沒有源 代碼,則會打開一個對象瀏覽器。有一些使用者更指望跳轉到元數據文件,可是我更喜歡對象瀏覽器,這樣類型的公有屬性、方法、事件都被列出來了,能夠一目了 然。就個人經驗,列表永遠比下拉框,選框更加易於查找。


可是這個功能有一個反作用,多年使用Windows的經驗告訴咱們,按住Ctrl的時候點鼠標左鍵,默認的操做是選中一整個單詞,可是在安裝了 Resharper之後,這個操做實際上等於Ctrl+B,也就是說可能你想選擇這個變量的名字,而後複製到別處去,但是卻跳轉到了這個變量的聲明處,不 由得讓你一陣惱火。目前我尚未找到選項屏蔽掉這個操做,因此,只有用鼠標雙擊來選擇單詞了(提示:若是跳轉到了別處,想返回,按Ctrl+-)

查找全部使用

  resharper 使用 轉載 - 我是一隻老虎 - 個人博客Alt+F7,有感受嗎?不錯,就是TotalCommand裏搜索的快捷鍵,沒有用過TC,還在用資源管理器?那可不該該。簡而言之, Alt+F7將你光標所在位置的變量的全部使用以列表的方式顯示出來,顯示結果的窗體能夠像其餘窗體那樣停靠。

它的優勢包括:

  • 能夠從全部使用中挑選只顯示read usage或者write usage,有時咱們只是想知道某個變量在哪裏被改變了。找到的位置前的圖標也告訴你這點。
  • 能夠在下方預覽,即便咱們列出全部使用,也不想跳轉到每一個使用它的地方,這時預覽能夠幫你大忙。
  • 當你在代碼編輯器中改動了某些使用時,好比刪除了某行,那麼在查找結果的窗體中,會用刪除線表示出來。
  • 默認的是尋找解決方案中全部的使用,而且按照命名空間來組織,很是便於選擇。

我如今已經記不起來在沒有Alt+F7以前我是怎麼查找的。反正如今我幾乎不怎麼樣Ctrl+F了,除非我忘記了某個變量的名字。若是是這樣,多半 這個名字須要refactor,那也是Resharper的另外一大塊功能所在。也許有人對這個功能嗤之以鼻,可是用過CAB的人都知道,訂閱和發佈某個事 件的簽名,徹底是字符串,若是你不用搜索來找到它的話,你都不知道這個控件的鼠標點下去,到底有多少個處理程序在背後開始工做了。用了Alt+F7來搜索 這個字符串,等於在查找背後全部的調用者。

不過提示你,當光標停留在一個類型上時,要慎用Alt+F7,假設是一個string,你應該能想象到得找到多少個使用。

從這裏瀏覽

實在不知道用什麼中文來翻譯這個navigate from here...,只好直譯了。你可能在這些時候須要它:

當你要找這個類的全部繼承者,或者接口的全部實現者時,按住Ctrl+Shift+G會彈出一個菜單,其中有Inheritor,用方向鍵來選擇並 回車,若是隻有一個實現,那麼直接跳轉到這個實現,若是有多於一個,或者由於使用了partial分佈到好幾個文件中,會再彈出一個菜單來供你選擇。與此 相似,若是你選擇base,則會跳轉到基類或接口中去。

同時這個功能也囊括了前面的轉到定義和查找使用,若是你偷懶的話,只記住這個就能夠了,雖然Ctrl+Shift+G的快捷鍵有一點生僻,可是用着用着你就發現順手了。

這個功能不可不謂是用來熟悉一套框架的利器,可讓你迅速找到某個接口的全部實現,和Alt+F7合用,可讓你在一個龐大的解決方案中如魚得水。

下一次,咱們該來說一講威力無比的Alt+回車了


進階三:快速完成

 經常寫代碼的人,應該都對Visual Studio的智能感知有必定的好感,經過它,在輸入比較長的對象名稱時不以爲吃力了。恐怕這是.net平臺比其餘平臺的代碼更加易讀的一個因素,由於每 個變量名稱都比較有意義,而不是晦澀的varIdx,pElemDisp之類了。儘管這樣看起來很酷。
在沒有Resharper以前,Visual Studio的自動完成功能就很強大了。只是它定義的快捷鍵實在是讓人不順手。Alt+右方向鍵,我怎麼都沒法不低頭按它倆。因而我把快捷鍵改爲了Ctrl+;(分號)這樣按起來方便多了。
Resharper則在Visual Studio的基礎上又增添了一些功能。好比說,在原生的自動完成中,關鍵字,好比private,override這些,是沒有提供自動完成的(有嗎, 我已經不記得了)。還有這下面一些,則是Visual Studio原生確實沒有的:
當你寫一個新的字段時,好比string _field; Resharper會自動地在前面爲你加上private,也許有的人以爲多餘,但我以爲是應該的。
當你輸入foreach的時候,模板會自動的出現,方便你輸入集合還有子項的類型與名稱,回車以後就進入到塊中。這類的模板你能夠自行定義,並在團隊中共享。這樣在處理某些特定的場景時,代碼的執行基本一致。
在你須要輸入{的時候,Resharper可以自動的爲你加上},而且光標位於其中,若是你敲回車鍵,兩個括號和你準備接下來要寫的塊內的代碼都縮進對齊了。這個功能遠遠不僅提及來那麼簡單,當你發現本身能夠所以忘記每次括回去的時候,是多麼的愜意。
同理,在你輸入[或者(的時候,Resharper也如此爲你添加成對的括號。
這樣也有不方便的時候,好比你在調用某個方法的時候,其實你只是想輸入(,而後開始寫參數,再寫),而後寫分號,但是它恰恰幫你寫了,特別是當參數仍是一 個字符串的時候,你輸入",它又自動的幫你寫了",而且把光標置於其間,好多時候搞得你很惱火。由於你要敲end鍵挪到行尾,再寫;,而end鍵也很難在 你不低頭的狀況下按準。實際上,這時你的選擇還不如老老實實寫上"),也比敲end來的快。因此爲方法自動的添加括號的功能,只有在不帶參數的狀況下使用 才最愜意。
總的說,自動完成函數的輸入工做,仍是一個很實用的功能,如今你須要輸入ToString()的話,只須要最多敲四個了ToS和;就能夠了,其餘的部分Resharper都自動爲您完成。
最後再賣弄一下,將自動完成的快捷鍵換成Ctrl+;的話真的很是棒,即便你沒有安裝Resharper,也可能考慮把原生的快捷鍵更改掉。在我全部用的電腦上,我都偷偷的把Ctrl+;添加進去了。由於這兩個鍵實在是太好摁了。

進階四:萬能的Alt+Enter

萬能的Alt+Enter可以幫你完成不少編寫代碼過程當中的dirty work,總結起來大概是這麼些:

  • 幫你實現某個接口或抽象基類的方法;
  • 提供你處理當前警告的一些建議;
  • 爲你提供處理當前錯誤的一些建議(不必定是真的錯誤);
  • 爲你簡化當前的臃腫代碼;


幫你實現某個接口或抽象基類的方法

這個功能Visual Studio也已經幫你提供了,就是每次你在類名的後面加上:ISomeInterface的時候,它會提示你按Tab鍵就生成接口中全部方法的存根。如 果你這時沒按,後來,你還能夠把鼠標懸停在這個接口名,會出現一個小小的,小的不能再小的,費死勁才點得中的智能感知符上,而後生成方法。在安裝了 Resharper之後,這個功能被視爲與其它警告同樣的處理辦法。若是你:ISomeInterface之後,又沒有實現它的方法,這一行代碼會打上波 浪號,表示有警告或者錯誤發生。按下Alt+Enter,則會爲你生成這些方法。
不要以爲我小題大做,在你修改了ISomeInterface這個接口之後,好比添加了一個Initial方法,這時最快的辦法是:在 ISomeInterface上點Ctrl+Shift+G瀏覽到這個接口的實現類,而後Alt+Enter,這個類中當即就添加了Initial這個方 法,並可開始編寫代碼。

提供你處理當前警告的一些建議

有的時候你可能會忽略的一些細節,Resharper不會忽略,好比你用了隱式類型轉化:

Button btn = sender as Button;      //隱式類型轉化

而沒有接下來檢測它是否爲空,就直接使用。這時Resharper會提示你一個警告。若是你按下Alt+Enter,它會把你以後的代碼包括在一個if語句中:

if (btn != null)
{
//你接下來的代碼
}

不過令我不滿意的是,我時常要的是這樣的效果:

if (btn == null)
return;

不知道這個行爲能不能在配置中修改。

爲你提供處理當前錯誤的一些建議

被Resharper標記爲紅色的即爲錯誤了,有時錯誤也多是你有意爲之。好比你隨意地在View.cs中寫下了:

_presenter.GetAllLayers();

而實際上你的Presenter.cs中尚未這個方法,那麼按下Alt+Enter就會當即在Presenter.cs中添加這個方法,並跳轉到 該方法,若是Presenter不止分佈在一個文件中,會彈出對話框讓你選擇。相比於Visual Studio常常臃腫的對話框,Resharper的彈出對話框每每十分直接,你只需當即用方向鍵選你須要的並回車。

爲你簡化當前的臃腫代碼

你的代碼若是被Resharper視爲多餘的,那麼會以灰色標識出來,例如:

this.Text = "標題欄文本"   //this爲灰色
btnOK.Click += new EventHandler(btnOK_Click)  //new EventHandler爲灰色

多餘的代碼並沒有害,只是顯得不那麼簡潔,若是你頭一次在安裝了Reshaper以後打開你以前編寫過的代碼會發現大量的灰色代碼。若是你查看設計器 生成的代碼,會發現Reshaper的豎直條几乎變成了橙色的一條了。基本上,你均可以用Reshaper爲你本身的代碼瘦瘦身,設計器產生的,好比窗 體,或者Dataset仍是不要動的好。

進階五:高效的代碼結構調整

經過我以前介紹過的Alt+F7和Ctrl+B,你能夠很快的在一個代碼文件中知道函數的調用狀況。可是有的時候,代碼文件很是複雜,裏頭有幾十個 函數都算是小兒科,甚至一個構造函數就有N多個重載。這時你想清楚的瞭解文件中各個函數,屬性,字段,事件等等,就不是那麼垂手可得的事情了。

在Visual Studio中,你能夠經過這些方式組織或審視你的代碼:

用region,這是最常使用的,我最喜歡的分法是:Field, Property, Event, EventHander, 而後根據實際狀況,Constructors(若是構造函數重載多的話),Helper(若是有許多公用的流程的話),再就是跟某個特定任務想關聯的一系 列方法組成一類。
當你用region把你的代碼組織好了之後,確實顯得很簡潔。可是問題來了,當一個同事check了你的代碼,而後準備修改,這時,他想要理清你的思路, 因而在你的代碼裏開始奮戰,啊,這個調用了那個,噢,這個地方能夠接受0個或者1個或者三個參數……過了一個小時,他總算能夠開始寫他要改的那個部分了。 region的缺陷就是讓寫的人很明白,而讀的人仍是很費勁。

  resharper 使用 轉載 - 我是一隻老虎 - 個人博客
用對象瀏覽器能夠把你的方法結構展示出來,但致命的是它是按照字母排序的,對於咱們中國人來講,實在是難以找到像 FilterSelectableLayerByName這樣一個其實自說明性很強的方法來。而實際上你又把它裝進了一個「圖層控制」的region裏 面,而你的讀者卻沒法參透你的用意來。(若是你經常下載codeproject上的代碼的話,會知道這種事情常有。)

說了這麼多,其實就是想把對象瀏覽器和region的長處結合起來,既能夠清晰的分類,又能一目瞭然的找到須要的方法。Resharper這時幫上你的大忙了。用Ctrl+F12,就彈出一個像右邊這樣的窗口來。

這裏面,按照你的region來顯示,這樣讀你的代碼的人也受益了。每一個方法的參數,返回值都如UML同樣列出來。

  • 若是須要瀏覽到某個方法,直接雙擊它的名字;
  • 若是要把某幾個方法裝進一個新的region,則能夠選中方法,點工具欄上的像框的那個圖標;點叉則會刪除這個region並把相應的方法移到外面來。
  • 若是要調整某個方法的位置,好比把它移到別的region裏面去,只須要在這裏拖動這個方法便可。
  • 更可喜的是,你想要的從這裏瀏覽、找到全部使用和重構的功能也在這裏提供了,在某個方法上右鍵你就能開始操做。

這絕對是Resharper裏面最酷的功能,你快打開Visual Studio試一試吧。

進階六:重構纔是王道(上)

重構是一種精神,證實你在致力於提供高效的、精煉的、健壯的代碼,而不是凌亂的、晦澀的、漏洞百出的代碼。
在Visual Studio 2005中,微軟第一次提供了重構工具。可是不夠,遠遠不夠。咱們須要的重構是很是廣義的,咱們想要對代碼進行快速的調整,快到我在想什麼個人工具就能作 什麼。這纔是追求重構的境界。因此在這個意義上,幾乎Resharper爲你提供了巨大的生產力。

Visual Studio 2005提供的重構包括了以下:

  1. 封裝字段
  2. 提取方法
  3. 提取接口
  4. 提高局部變量
  5. 移除參數
  6. 重命名
  7. 從新排列參數

這些方法在Resharper中所有都支持(但Resharper的重構遠不止這些),它們對應的變成了:

  1. 封裝字段 —— Introduce Field
  2. 提取方法 —— Extract Method
  3. 提取接口 —— Extract Interface (另增長了Extract Superclass提取爲基類)
  4. 提高局部變量 —— Introduce Variable
  5. 移除參數 —— 移到Change Signature(改變方法簽名)中
  6. 重命名 —— Rename (Resharper會根據對象的類型名稱,提供你幾個可選的最合適的名稱)
  7. 從新排列參數 —— 移到Change Signature(改變方法簽名)中

我知道不少人都聲稱本身E文很差,可是,這確實都是很簡單的單詞,難不倒任何人的。這些重構的功能是人所共知的,下面就告訴你們一些Resharper特有的,首先,重構的快捷鍵是Ctrl+Shift+R:

一、對於類,除了提取接口、基類,你還能夠移動它到其餘的命名空間和移動到別的文件裏,這是一個實用的功能,也許你不信,可是我這真的有我的,把全部的business entity都寫在一個DataObject.cs裏面。你不可思議,我打開它時嘴張了多大。

二、對於字段,提供了:

  • Safe Delete,會檢測全部使用到的地方,並詢問如何刪除;
  • Pull Member Up和Push Member Down,能夠把這個字段在基類和繼承類中移動;
  • Use base type where possible,儘量的使用基類,因爲ArcGIS平臺是基於com組件的,不少時候咱們須要的是IGeometry, IPointCollection這樣的接口所公開的屬性或者方法,因而你沒有必要保存一個polygon對象,而可使用基類型;
  • Encapsulate Field,封裝字段,可是這個功能遠沒有另外一個提供一樣功能的操做有用。我能夠在後文中來說。

三、對於方法,提供了:

  • 與字段相似的功能,此外;
  • Change Signature,更改函數簽名,包括更更名稱,返回值類型,參數的各類信息,添加和刪除參數,至關實用。若是你是在重寫方法上操做,會提示你是否到基類中更改。
  • Make Static,若是Resharper檢測到這個方法並無與非靜態成員相關聯的話,每每會自動地提示你(以黃色橫槓的形式出現)能夠改成static,若是你自做主張的對一些方法進行修改也無不妥,但後果自負。
  • Extract class from parameter,若是你的參數有七個八個,那是否考慮用一個類來封裝這些參數呢,因而這個功能應運而生。
  • Method to Property,顧名思義,若是還在使用GetField()或者SetField(..)的話,你必定是從非.net星來的。

四、在方法體內部:
Extract Method,不用介紹了吧。
Introduce Variable/Parameter/Field,取決於你光標所在的對象,能夠提供轉化的功能。
Inline Variable:就是把:

IPoint point = new PointClass();
point.PutCoords(_point.X, _point.Y);

變成這樣子:

new PointClass().PutCoords(_point.X, _point.Y);  //這是個糟糕的例子


5、重命名:
爲何重命名值得挑出來說,由於Resharper提供了命名建議這一金子般的功能。因而,想更名爲易讀性強的名字,不是那麼費腦子的事情了。 Resharper會根據這個變量的類型,爲你提供幾個備選名字,名字列表是列在光標位置上的(對方法重命名會彈出對話框),你只須要用方向鍵選擇並敲回 車便可,這種名字可能是將類型的名字首字母改成小寫得來的,甚至刨根到基類的類型名,你還能夠在此基礎上加以改進。若是你還在用i,j這種晦澀的名稱,請迅 速的把他們改成outIndex, pointCount之類可讀的名稱。
Resharper其實提供了更先進的功能,在你命名一個變量時,就有快捷鍵爲你提供備選名字,可是Ctrl+Space是咱們寶貴的輸入法切換鍵,因而,我對變量名的敲定,每每是先起了一個較爛的,而後重命名的。

還有一些更廣義上的,幫助你對代碼進行調整的功能,我另寫一篇吧,否則太長了。

進階七:重構纔是王道(下)

插入代碼
Resharper的Alt+Insert快捷鍵提供給你插入代碼的功能。因爲這兩個鍵很是難按(這是個人感覺),真正在使用的時候,我用的是Alt- R-C-G,意指打開Resharper菜單——Code——Generate,都只須要你的左手,這樣你能夠右手一邊比劃,一邊還在寫代碼,多酷啊。

  • 生成的代碼中最經常使用的是構造函數和屬性,當你沒有私有字段的時候,只會生成一個空的默認構造函數,並且沒有生成屬性的功能。在你有私有字段的狀況下,生成以前會讓你選擇哪些私有字段須要做爲構造函數的參數,並生成初始化的代碼,這樣編寫重載極其方便。生成屬性也相似。
  • 再次經常使用的就是重寫基類或者接口的方法了。選擇Implement Interface Member或者Override Inheritate Member,Resharper會查找當前類的基類或接口,而後按繼承層次列出來,根據你的選擇重寫或實現這些方法。
  • 不 是太經常使用的是生成Equals和GetHashCode方法,在個人應用場景中不多重寫它們。可是根據《.NET設計規範》,無論是值類型仍是引用類型的 Equals都建議重寫,而且應該重寫GetHaseCode方法,由於它們相互依賴。若是你有這個需求,那麼生成這三個函數必定可以幫你的大忙。

包圍代碼
Visual Studio也提供了外側代碼這個功能,你能夠按Ctrl+K,Ctrl+S來激活這個功能,雖然我並無任何鄙視Visual Studio的意思,可是Resharper的快捷鍵確實更加合理(我在按下Ctrl的時候真的很難按下S),條目也更加清晰。Resharper中這個 功能的快捷鍵是Ctrl+Alt+J,而後你就能夠選擇將當前行的代碼包圍到try-catch塊或者using中了。這是很高效的方法,咱們傾向於在開 發的早期儘可能不捕獲異常,而在中後期才加入異常處理機制。因而你某一個時期有大量的工做是把他們擴到try-catch塊中。而你要使用支持 dispose對象時,最好的方法是使用using塊。(賣蛋糕的,當我知道個人代碼不是最優的時候,我老是寢食難安),這裏天然也有把代碼擴到 region塊中的功能,也是經常使用功能之一。

調整方法的位置
前面我曾說過,若是要調整方法的位置,能夠在代碼結構窗口中拖放操做。若是你以爲只是把一個方法移動到前面去,卻不得不打開代碼結構窗口太太重量級,那麼 有輕量級的方法:當光標位於方法的名稱上時,用Ctrl+Shift+上下鍵就能夠移動方法的位置,包括方法的xml註釋,但若是你用的不是三個/的 xml註釋而是兩個/的,那麼就對不起了。

其餘瑣碎的功能
你確定經常會複製粘貼當前行的代碼,例如在使用StringBuilder.Append的時候,Ctrl+D能夠簡化你Ctrl+C,Ctrl+V的工做。
曾經有一個組合鍵能夠註釋掉當前行,還有另外一個是取消註釋,可是我已經淡忘了,由於Ctrl+/才應該是真正屬於它的快捷鍵,再次按下就能夠取消註釋。

關於Resharper的重構功能就是這些,我可能天真地把不少額外功能都算在重構裏了,可是它確實可以幫助你快速的對代碼進行調整和優化。因此,請不要深究我對重構的概念認識是否是混亂。

進階八:加強的瀏覽功能

瀏覽參數的方式
輸入方法的時候,咱們已經習慣了由IDE提供給咱們的參數提示,極大了方便了咱們選擇重載方法。在沒有Resharper的環境下,Visual Studio已經作到了。那麼爲何Resharper還要加強這個功能並大獲好評的。試問,Visual Studio那窄窄的一行參數提示有沒有讓你以爲憋屈。咱們有19寸的大屏幕,1600的分辨率,卻不得不盯着那窄條條,當心翼翼的按着上下鍵尋找咱們需 要的重載。至少,開發Resharper的傢伙是受不了這種憋屈的,因而大開大闔版的參數列表出現了,長長的參數重載被以列表的形式展示出來,當你在使用 GDT+方法,看到巨大的參數重載時,你會從心底裏發出感嘆:賣蛋糕的。
同時,Resharper展現參數的快捷鍵變成了Ctrl+P,若是你以爲屏蔽了打印的快捷鍵簡直是在開玩笑的話,那麼問問你本身有多少次打印過本身的代碼。

瀏覽打開過的文檔我竊覺得你已經知道了在Visual Studio中切換文檔的方式,它們包括:Ctrl+Alt+上下方向鍵,能夠在打開的文檔中切換;Ctrl+Tab,不只能夠在文檔以前切換,並能夠切換到解決方案文件夾,屬性視圖去,須要按左右鍵。可是怎麼樣打開最近編輯後關閉的文件呢,Visual Studio很客氣的又沒有提供此功能,因而留給了Resharper。在我這裏這個快捷鍵是Ctrl+E,Ctrl+E,沒錯,按兩次。若是你的不是, 那麼在Resharper-View-Recent Files菜單下看看它是什麼。由於你會時經常使用到。打開一個文件的列表,用方向鍵選擇並回車就會在編輯器中打開。不少人說Resharper的性能問題,我想,一個可能的緣由是打開的文檔太多了,若是你有時刻關閉不須要的文檔的習慣,性能或許不會那麼差,而且你能夠隨時打開這些你關閉了的文檔,就像在已經打開的文檔中切換同樣的方便。個人團隊中沒有用到敏捷開發那些高級的東西,可是咱們仍是保持着每次改動都僅涉及兩三個文件的好習慣,而且頻繁的commite到源代碼服務器上去。因此,我每次真正要編輯的文件很少,性能不是問題。和你們分享了不少Resharper使用的技巧,點點滴滴都已經融入我平常的開發工做中了。固然很不全面,例如與Nunit的集成,因爲咱們不是測試驅 動,因此沒有任何體驗,天然也不敢大放厥詞;也很主觀,我以爲它好,你可能以爲它很差,蘿蔔青菜各有所愛。再說,它也不是沒有白癡的地方,在文檔上點右鍵 增長的一個Close All功能,能夠關閉全部打開的文檔,關閉了幹什麼,對着一個空白的屏幕發呆麼?我以爲原生的「除此以外所有關閉」就夠了。還有一個定位的功能 (Locate in Solution Explorer),真是沒用,若是你在VS選項中設置了,在解決方案管理器中跟蹤活動項,那麼VS自動就給你定位了。無論怎麼說,它帶給我更快更方便的開發體驗,把我從一些瑣碎的,不人性化的功能中解放出來。從這一點上來講,我很但願愈來愈多的人喜歡上它,開始用它,並幫助它更好的發展。

相關文章
相關標籤/搜索