http://www.jetbrains.com.cn/index.html 官方網站中文html
1:安裝後,Resharper會用他本身的英文智能提示,替換掉 vs2010的智能提示,因此咱們要換回到vs2010的智能提示瀏覽器
2:快捷鍵。是使用vs2010的快捷鍵仍是使用 Resharper的快捷鍵呢?我是使用re的快捷鍵服務器
3:編輯器
Resharper安裝後,會作幾件事情,這幾件事情對於除此使用者,比較麻煩,所以概括總結一下,以資參考。ide
(1)、會將選項——文本編輯器——C#——常規——自動列出成員 這個選擇框的勾選去掉。這樣當你使用某個方法的時候,便不會提示參數,是一個很鬱悶的事情。函數
能夠手動勾上。工具
(2)、會將選項——文本編輯器——C#——高級——顯示實時語義錯誤、在編輯中用下劃線標識錯誤這兩個選項去掉。這個原本沒有什麼,可是若是卸載了Resharper,性能
vs編輯器變不會實時提示錯誤。所以卸載Resharper後,須要把這兩個選項從新勾選上。測試
4: use var優化
use implicitly typed local variable declaration
5:按 alt+enter 能解決不少問題。下面是快捷鍵大全。
6: Alt+F7將你光標所在位置的變量的全部使用以列表的方式顯示出來,顯示結果的窗體能夠像其餘窗體那樣停靠。
它的優勢包括:
我如今已經記不起來在沒有Alt+F7以前我是怎麼查找的。反正如今我幾乎不怎麼樣Ctrl+F了,除非我忘記了某個變量的名字。若是是這樣,多半這個名字須要refactor,那也是Resharper的另外一大塊功能所在。也許有人對這個功能嗤之以鼻,可是用過CAB的人都知道,訂閱和發佈某個事件的簽名,徹底是字符串,若是你不用搜索來找到它的話,你都不知道這個控件的鼠標點下去,到底有多少個處理程序在背後開始工做了。用了Alt+F7來搜索這個字符串,等於在查找背後全部的調用者。
不過提示你,當光標停留在一個類型上時,要慎用Alt+F7,假設是一個string,你應該能想象到得找到多少個使用
7:威力無比的Alt+Enter回車
萬能的Alt+Enter可以幫你完成不少編寫代碼過程當中的dirty work,總結起來大概是這麼些:
8: Ctrl + F11 當咱們看別人的代碼,或者是看本身的代碼的時候,老是以爲代碼太多,因而咱們就用 region來把代碼進行了封裝註釋,但是這樣以後別人看代碼就很鬱悶,Resharper的 File Structure 功能,就能夠把region和你的方法都展現出來。
說了這麼多,其實就是把對象瀏覽器和region的長處結合起來,既能夠清晰的分類,又能一目瞭然的找到須要的方法。Resharper這時幫上你的大忙了。用Ctrl+F11,就彈出一個像右邊這樣的窗口來。
這裏面,按照你的region來顯示,這樣讀你的代碼的人也受益了。每一個方法的參數,返回值都如UML同樣列出來。
9:重構纔是王道(上)
重構是一種精神,證實你在致力於提供高效的、精煉的、健壯的代碼,而不是凌亂的、晦澀的、漏洞百出的代碼。
在Visual Studio 2005中,微軟第一次提供了重構工具。可是不夠,遠遠不夠。咱們須要的重構是很是廣義的,咱們想要對代碼進行快速的調整,快到我在想什麼個人工具就能作什麼。這纔是追求重構的境界。因此在這個意義上,幾乎Resharper爲你提供了巨大的生產力。
Visual Studio 2005提供的重構包括了以下:
這些方法在Resharper中所有都支持(但Resharper的重構遠不止這些),它們對應的變成了:
我知道不少人都聲稱本身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,都只須要你的左手,這樣你能夠右手一邊比劃,一邊還在寫代碼,多酷啊。
包圍代碼
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自動就給你定位了。 無論怎麼說,它帶給我更快更方便的開發體驗,把我從一些瑣碎的,不人性化的功能中解放出來。從這一點上來講,我很但願愈來愈多的人喜歡上它,開始用它,並幫助它更好的發展。