標籤:
C#6.0新特性怎麼用
系列文章
Visual Studio 2015速遞(1)——C#6.0新特性怎麼用
前文提到過一個神器叫Resharper,功能強大,編碼效率和代碼品質那是蹭蹭的漲,但是神器的最大問題是太耗費資源了,每次系統提示記憶體不足的時候,那叫一個糾結啊。因此每次新的VS發布的時候都情不自禁的查看是否增強編輯功能,情不自禁的討論一番,這次VS2015也不例外。
去年微軟放出Roslyn的時候,微軟就曾經放出過一個“嘗鮮”版的VS編輯增強功能,恰恰就是重構(reflector),話說這個對控制項開發太有用了,但是之前只有糾結的Resharper才有的,雖然它也不是很完整,當時還鼓動“群眾”去微軟功能收集網站上瘋狂點支援呢。一年過去,微軟正式命名Roslyn為.NET編譯平台(.NET Compiler Platform),得益於這個平台,微軟在VS2015完善了讓開發人員欣喜的編輯器增強。
- 點亮的小黃燈泡可以展開一個快速動作的入口(看著看著總覺得像是從Resharper搬過來的,哈哈),當代碼有為題的時候,提供各種修複建議。另外所有的重構功能也一到這裡了,還增加了快速鍵(Ctrl+<Dot>)。
- 支援臨時變數和本地變數重構,可以輕鬆把一個代碼塊替換成本地臨時變數或者反過來把臨時變數的執行塊放回去。
- 改名(renaming)有所增強,比如直接在編輯器裡改名並應用到所有執行個體,還有一些典型情境下改名衝突問題都有所體現
除了上面的重構功能,微軟還做了其他的編輯器增強,主要是對於觸摸裝置支援,高解析度裝置支援等等,在沒遇到問題之前,這些都不算什麼,是以按下不表;但是對於Javascript編輯增強還是很有競爭力的,比如更好的導航,利用JSDoc改善智能提示,程式碼摺疊功能等等,想想當年那個好幾千行的wijmo widget實現,盡然覺得現在的“猿”們很幸福。
作為偉大的“程式猿”一員,僅僅有編輯器增強無疑是不夠看的,還渴求一個好的調試和診斷工具,一直以來VS在這一領域做的都不錯,但是還有有那麼些痛處讓廣大“猿”們心裡不安,當然,好訊息是VS2015再次增強了調試和診斷工具,讓我們可以更從容準確的找到問題的癥結。下面我們一起來看看這些讓其他開發環境羨慕,曾經很糾結的功能點吧:
- 附加調試時編輯執行(Edit and continue on Attach),想想無數次修某些小問題的時候,也就改了那麼幾句話,想看效果,得等待IDE停掉當前的調試,然後編譯在啟動新的調試,每次花費的時間看起來不多,累計效果確實很驚人的,因此編輯執行功能對複雜的開發情境還是非常爽的。如今,VS添加了對附加調試的編輯執行的支援,這對於很多web開發來說非常有用,舉個例子,你在頁面裡用了C1 Studio for .NET的web控制項,放到IIS上了,發現問題可能是少設定了某個屬性,現在你只需要附加調試IIS,然後在合適時機通過編輯執行把這段代碼注入進去就可以了。
- 在調試視窗執行Lambda。比如從EF返回了一個Entity,然後本地掛了一堆LINQ,調試到一半,看看中間結果是否預期,很高興的在監視(Watch)、立即執行(Immediate)等視窗粘帖了一段代碼,斷行符號,期待了好一會,IDE提示有Lambda,不能繼續,想想就很不爽。
- XAML UI調試工具,經過這麼多年的發展,WPF也算是在介面層站住了腳,但是IDE對於介面的調試這一塊一直沒有起色,很多工具都是磕磕巴巴,不是效能問題就是互動性不好,具體來說,比如C1 XAML裡的FlexGrid,老闆突然跳出來讓你解釋一下自訂編輯器那啥的,還真不好說清楚。VS2015為此提供兩個小工具:Live Visual Tree和Live Property Explorer,開啟介面,就可以Just-in-Time 偵錯介面上的很多細節,諸如元素位置,綁定細節等等。
- 另一個WPF的功能點是Timeline Tool,替代了前代的XAML UI Responsiveness tool,有點像Webkit裡提供的開發人員工具裡相似的時間軸,能把應用程式的效能按時間軸的方式展開。對於WPF的效能調優來說,很及時,比更早期Performance Tool好了不止一點點。
當然,實際VS2015還提供的更多其他效率和品質方面的增強,限於篇幅,這裡就不贅述了,感興趣的童鞋可以一起討論。
C#6.0新特性