前言
相信從事程式設計工作久的人,一定不難發覺,為了達成某些功能有些程式碼都是重複在使用的, 且內容都非常地相似。不同的只是幾個識別子(Identifier)名稱不同而已。而微軟似乎也明白這個道理,所以在Visual Studio 2005時就推出了程式碼片段(Code Snippet)的功能,並且提供了許多內建的程式碼片段。本文並不會說明如何使用內建的程式碼片段,有興趣的讀者請參閱其它的書籍。
本文的目的是,想說明如何使用自訂的程式碼片段,為了便於讀者瞭解使用程式碼片段的好處,並能明瞭接下來說明內容所想表達的,所以文章會以先前所發表的「CSLA.NET 基本功-NameValueList」為說明主軸,所以讀者可先參閱該篇文章,並配合底下的說明,使用程式碼片段,快速地建構出NameValueList商業物件。
程式碼片段檔案
一組程式碼片段會以一個附加檔名為「.snippet」的文字檔儲存,為了練習如何將程式碼片段匯入Visual Studio IDE開發工具中,讀者可先行下載筆者為NameValueList所開放的程式碼片段,並配合接下來的說明做練習。而如何自行製作自己的常用的程式碼片段,會在另一篇文章中做說明。
匯入程式碼片段
當準備好了程式碼片段檔案後(本例是:NameValueList.snippet),必須先將該程式碼片段檔匯入Visual Studio IDE開發工具中,以備往後撰寫程式碼時使用(註:只需匯入一次往後即可在各個專案開發中使用)。
請開啟Visual Studio在功能表上選擇「工具(T)」→「程式碼片段管理員(T)...」,開啟程式碼片段管理員。


在程式碼片段管理員開啟後,首先,決定欲匯入的程式碼片段是屬於何種程式語言使用(本次開放的NameValueList程式碼片段是屬Visual Basic)。

為了讓程式碼片段,在將來使用時容易找尋到,因此適當地為程式碼片段依功能別分類,會使將來使用時更為便捷。而分類的方法是使用檔案資料夾的方式,相同 功能的程式碼片段可放置在同一個檔案資料夾中。而上圖所示為微軟內建的程式碼片段的分類列表,及各類程式碼片段存放位置。讀者可試著展開各個節點查看一下 微軟為我們準備了那些好用的程式碼片段,將來程式寫作,臨時忘了那段程式碼如何寫時,也許可以在這裡找到。
由於程式碼片段的分類方法是使用檔案資料夾的方式,所以這裡提供了兩種方式來將自訂的程式碼片段加入到Visual Studio IDE工具中:
- 將程式碼片段加入到既有的分類(資料夾)中,這適合少量匯入程式碼片段時使用。(使用「匯入(I)...」)
- 先將程式碼片段,在外部依分類先自行建立資料夾(可分層),並將各個程式碼片段放置到合適的資料夾中,最後以「加入(A)」的方式將最頂端的資料夾加入,這樣即能一次將所有分門別類的程式碼片段段匯入到Visual Studio IDE工具中。
請讀者依自己喜好,先將下載來的程式碼片段加入到一個既有資料夾中。建議先行加入到「My Code程式碼片段」中,筆者將在整個CSLA.NET Framework中所有可使用的程式碼片段整理分類後,再公開供讀者下載,到時讀者可再一次全部匯入。
使用程式碼片段
接下來說明如何使用,程式碼片段。請先開啟一個專案並加入一個類別。接著在欲插入程式碼片段的地方按滑鼠右鍵,並選擇「插入程式碼片段 (I)...」,再接著依所想插入的程式碼片段所在的分類,依次雙擊滑鼠左鍵,直到插入所需的程式碼片段。(本例是:插入NameValueList樣 版)




將程式碼片段插入後,一些因情況必須更改的識別子或型別名稱的位置,會自動反白,提醒程式設計人員必須更改成自己所要的。 並且將滑鼠移到該反白的部分會出現「提示」告訴程式設計人員該做那些修正。而有相互關聯的名稱,只要更改一個地方,其它相關的地方也會跟著一起更改。
結語
藉由分析並整理一些自己在程式設計過程當中,所常遇到重複輸入的程式碼,將【不變】與【會變】的部分,整理出來並製作成程式碼片段,在程式設計時使用, 將可大大提昇效率且降低出錯的機率。一個程式設計師的功力提昇,不只是在於累積專案開發經驗,且在於收集自己的(當然,在合法範圍內,也能把別人的收為己 用):「類別庫」、「Framework」、「程式碼片段」、「控制項程式庫」且能靈活運用。
一個程式設計師,要想將來的路走得【長】 走得【久】,在從事設計的過程當中,隨時都該有不只是想「解決當前的問題」更要有解決「未來的問題」的意念。隨時都可想想,程式碼這樣寫,將來是否可再重 複使用(Reuse),並將之付諸實現,這樣不只可提昇功力外,至少也不用常常抱怨工作做不完,無法回家陪老婆。