實例講解Visual Studio代碼段
Visual Studio還是比較常用的,于是我研究了一下Visual Studio代碼段,代碼段是Visual Studio 2005 中最能體現(xiàn)效率的特點之一。在這里拿出來和大家分享一下,希望對大家有用。它可以避免單調(diào)乏味的輸入過程(例如鍵入 for 循環(huán)),使您能夠快速插入Visual Studio代碼段,它還可以提供可完成特定任務(如通過網(wǎng)絡發(fā)送數(shù)據(jù))的模板。大部分內(nèi)置的 C# 代碼段都屬于第一種類型 -這些代碼段可以幫助您將重復輸入降到最低,而很大一部分內(nèi)置的 VB 代碼段都屬于第二種類型 - 使用這些代碼段可以更容易地編寫執(zhí)行特定任務的代碼。
#t#有兩種插入Visual Studio代碼段的方式。您可以在代碼編輯器中鍵入代碼段的別名,然后按兩次 Tab 鍵(對于 VB 只需按一次 Tab 鍵)即刻插入代碼段。在插入代碼段之后,您可以通過按 Tab 鍵和 Shift+Tab 鍵跳到代碼段的不同區(qū)域。這允許您快速更改需要修改的代碼部分。請注意:在 C# 中,代碼段別名也具有 IntelliSense。您可以在 IntelliSense 列表中通過其代碼段圖標指明某一項為代碼段。
如果忘記了代碼段的別名,還可以按“Ctrl+K、Ctrl+X”在代碼編輯器內(nèi)插入別名,也可單擊鼠標右鍵,然后選擇“插入代碼段...”。這會顯示代碼段選取器,使用它可以瀏覽適用于當前編程語言的所有代碼段以及選擇要插入的代碼段。這種插入Visual Studio代碼段的方法對于 C# 和 Visual Basic 均有效。對于 Visual Basic 用戶,還可以有另一種插入Visual Studio代碼段的方式:您可以鍵入代碼段別名的前幾個字母,后跟“?”,然后按 Tab 鍵。Visual Studio 會顯示一個按字母排序的列表,其中包含與突出顯示的內(nèi)容最為匹配的所有代碼段的別名。此功能僅適用于 Visual Basic 用戶。
從個人角度將,最令人興奮的代碼段功能部分是,您可以為個人使用而創(chuàng)建自己的代碼段,也可以將其分享給其他同行使用。當然,您也可以下載其他開發(fā)人員創(chuàng)建好的代碼段。
在 Visual Studio內(nèi)部非常容易就可以創(chuàng)建您自己的代碼段。我將通過一個示例說明如何操作。我經(jīng)常會編寫一些應急的實用程序來幫助我完成工作。其中的許多實用程序都有通用的模式:打開某個文件,執(zhí)行一些處理,然后關閉該文件。以下是我的代碼段的創(chuàng)建步驟。
步驟 1: 創(chuàng)建 XML 文件。每個代碼段都包含在一個 XML 文件中。在 Visual Studio內(nèi)部,只要轉(zhuǎn)到“文件”>“新建. . .”>“文件. . .”,然后選擇“XML 文件”類型即可。
步驟 2:定義代碼段。如果有足夠的興趣,甚至還有一個可創(chuàng)建代碼段的代碼段。只要在該文件的第二行按下 Ctrl+K、Ctrl+X,選擇“Snippet”代碼段,就會自動為您插入一個代碼段文件的模板。
標題、作者、快捷鍵和描述字段這些內(nèi)容不言自明,我就不再具體說明了。< Snippet> 標簽中的內(nèi)容值得討論,我下面的例子可以對此給出最好的解釋。
實際上,您將所有代碼放在了 <! [CDATA[...]]> 標簽之內(nèi),而該標簽是在 </ Code> 標簽的內(nèi)部。對于那些希望用戶可以輕松替換的字段,您可以在這些字段兩邊放置一對“$”字符。在我的示例中,我設置了三個我的代碼段用戶可以輕松替換的參數(shù):StrmReader、FilePath 和 Line。這三個參數(shù)在 CDATA 部分的內(nèi)部使用,每個參數(shù)兩側(cè)都有一對“$”字符。此外,每個參數(shù)也必須在 < Declarations> 元素中進行定義。為每個參數(shù)指定一個 ID 和一個默認值(可選)。
敏銳的讀者會注意到,在我的代碼段內(nèi)部還有另外一個我沒有定義的參數(shù): $end$。這是一個特殊參數(shù),用于指定用戶在代碼段字段中填寫完內(nèi)容并按下 Enter 鍵后光標所在的位置。還有一個我在此處沒有列出的特殊參數(shù):$selected$。$selected$ 參數(shù)只對 SurroundsWith 類型的代碼段有意義。它用于定義在使用“Surround With...”插入Visual Studio代碼段時所選的代碼段的放置位置。
- <?xml version="1.0" encoding="utf-8"?>
- <CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
- <Header>
- <Title>File Processing</Title>
- <Author>James Lau</Author>
- <Shortcut>fp</Shortcut>
- <Description>Opens a file, does some processing, and then closes the file.</Description>
- <SnippetTypes>
- <SnippetType>SurroundsWith</SnippetType>
- <SnippetType>Expansion</SnippetType>
- </SnippetTypes>
- </Header>
- <Snippet>
- <Declarations>
- <Literal>
- <ID>StrmReader</ID>
- <Default>strmReader</Default>
- </Literal>
- <Literal>
- <ID>FilePath</ID>
- <Default>fPath</Default>
- </Literal>
- <Literal>
- <ID>Line</ID>
- <Default>strLine</Default>
- </Literal>
- </Declarations>
- <Code Language="CSharp">
- <![CDATA[
- StreamReader $StrmReader$ = null;
- try
- {
- $StrmReader$ = new StreamReader($FilePath$);
- string $Line$;
- while (($Line$ = $StrmReader$.ReadLine()) != null)
- {
- // Perform some processing
- $selected$
- $end$
- }
- }
- catch (IOException ioex)
- {
- // Handle exception
- }
- finally
- {
- $StrmReader$.Close();
- }
- ]]>
- </Code>
- </Snippet>
- </CodeSnippet>