使用Visual Studio Snippet(片斷)提交開發效率
自Visual Studio 2005始,Snippet便可使用了。但可能至今尚有為數眾多的.Net程序員還在重復錄入雷同的代碼。在vs代碼編輯器中輸入prop,然而按tag鍵,IntelliSense幫助程序員自動完成代碼,這個片斷或許都用過,但是,定義自己的Snippet,以及有哪些Snippet Function可以使用,這些問題恐怕就鮮有人涉及了。或有人曰:我可以用CodeSmith或MyGenerate生成代碼,或許自己寫個代碼工具,但其均不如自定義Snippet來得快捷方便。
VS自帶的Snippet(片斷),相信還有不少不為多數.Net程序員所知所用。定義一個Enum,如下:
Code
定義一個MyEnum類型的變量,如下:
Code
然后,在編輯器輸入swith,按Tab鍵,switch_on輸入myEu,則VS自動幫助我們完成以下代碼:
Code
以上switch snippet的使用,說明了GenerateSwitchCases函數的用法。GenerateSwitchCases函數,與ClassName、SimpleTypeName、CallBase均是Snippet的Function,我們若要自定義Snippet,少不了用這些函數。只是這些函數太少了,仿佛不夠使,此外關于它們的說明文檔也很少。在msdn 上有這么一篇:http://msdn2.microsoft.com/en-us/library/ms171427.aspx ,是講前三個函數的,意義不是很大。如果想快速掌握自定義Snippet的技巧,查看VS自帶Snippet的源碼是一個很不錯的方法,它們位于:X:\Program Files\Microsoft Visual Studio 9.0\VC#\Snippets\1033\Visual C# 目錄。
面向對象開發,免不了使用實體類。實體類中主要是屬性訪問器,VS默認的prop似乎不能滿足需求。附例中定義了一個prop2.snippet文件,打開菜單Tools | Code Snippets Manager..(或按Ctrl+K, Ctrl+B雙組合鍵),languages選擇Visal C#,選擇My Code Snippets,點選Import..按紐,找到prop2.snippet,添加之。
這一步完成后,在編輯器里輸入prop2,按Tab,其效果如下:
Code
看看,工作量就是這么減少地。不用使用CodeSmith,也不用再修改別人的CS模板。
此外,VS05+還具有導出模板功能,可以在項目開發中復用。VS提供了以上諸多解決方案讓重復的代碼自動完成,我們應該給VS一個面子,好好利用它。