青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

VS2005中用Code Snippets提高開發效率

 在VS.NET 2005中,新增加了許多新的特性和功能。其中在方便用戶編程方面有了很大的改進,比如新增加了code snippets(代碼片斷助手)功能。所謂的code snippets,是用戶可以在編程過程中,將經常要用到的一些常用代碼或者值得收藏起來的代碼保存起來,在要使用的時候就可以方便地調用出來。本文將介紹如何將vs.net 2005自帶的code snippets加到已有的應用程序中去,以及如何建立自己的snipeets,如何使用開源的snippet editor。

  首先我們來看下如何往已有的程序中插入code snippet。在vs.net 2005中,已經預先設置了很多平時我們會用到的code snippets了,比如for loops語句,又或者調用sqlcommand對象的executeReader方法等代碼片段,要用到的時候,只需要調用這些code snippets就可以很方便的操作。

  要在現有的代碼中插入code snippets,在要插入的位置,右鍵彈出的菜單中,選擇"insert snippet"或者同時按下CTRL+K+X組合鍵。這時會在當前光標位置彈出系統的snippet供用戶選擇,如果要取消返回代碼狀態,則只需要按 ESC鍵就可以取消了。

  Snipptets會根據你所使用的語言而有所不同而顯示不同的格式,如果你使用的是VB.net,則snippets會以圖1的方式顯示,如果使用的是c#,則以圖2的方式顯示,如果當前編輯的是xml,則以圖3的方式顯示。


圖1

圖2

圖3

  下面我們來具體看一個例子,假設你要為一個類添加屬性,一般來說你要輸入一大段代碼,比如還要添加getter/setter方法。如果用 snippets的話,將會十分方便。首先,我們在要增加屬性的代碼中,如果使用的是c#,按上文說的方法,右鍵彈出菜單中選擇"insert snippets",然后再選擇"visual c#",再在彈出的菜單中選擇"prop"(property的縮寫),又或者直接輸入prop,再按tab鍵,則可以自動生成一個添加屬性的普通代碼,包括了getter/setter方法,當然你還要改參數的名稱,如下代碼所示:

private int myVar;
public int MyProperty
{
 get { return myVar; }
 set { myVar = value; }
}

  要注意的是,在上面的代碼中,比如要修改myVar為另外的參數名,只需要點選myVar這個參數,此時參數會被一個綠色的小方框包住,當你修改為自己的參數后,只需要按回車鍵,則下文中所有的相關參數都會被同時修改。

  如果使用的是vb.net,則也有兩種方法實現。可以在要插入的位置選insert snippets,再選擇"common code patterns",在彈出的菜單中繼續選擇" Properties and Procedures",最后選擇"Define a Property",則會自動生成添加屬性的普通代碼;如果要簡單快捷的話,則可以輸入property,并按TAB鍵,則同樣可以實現,生成的代碼如下所示:

Private newPropertyValue As Integer
Public Property NewProperty() As Integer
Get
 Return newPropertyValue
End Get
Set(ByVal value As Integer)
 newPropertyValue = value
End Set
End Property

  值得一題的是,c#和xml snippets都有一個額外的功能叫"Surround with",就是說可以將已經存在的一段代碼放到snippets助手中去,比如有下面的代碼:

string[] arr = new string[4] {"This","is","a","test"};
string DisplayString=string.Empty;
DisplayString += arr[0];
MessageBox.Show(DisplayString);

  假如你想增加一個循環語句,來實現字符串的相加,那么可以先用鼠標選擇DisplayString += arr[0];,然后在右鍵彈出的菜單中選擇"surround with",再在彈出的菜單中選擇"for",則系統會自動添加如下所示的語句:

for (int i = 0; i < length; i++)
{
 DisplayString += arr[0];
}

  接下來我們談下如何管理這些代碼snippets。在vs.net 2005中,使用code snippets manager管理器來管理這些snippets,code snippets manager在tools工具菜單下可以找到,如下圖:

  對于vb.net,visual c#,Visual j#,xml,snippets管理器都分類列出了有哪些代碼助手,點選每一個代碼片斷,同時列出了其存放的位置。還提供了增加,刪除,導入,在線查詢代碼助手的功能。
最后,我們看下如何自定義snippets。首先研究下snippets的結構,以上文提到的屬性snippets為例子,我們先在snippets 管理器中,找到prop這個snippets,然后記下其所在的路徑,然后再用編輯工具打開這個文件,可以看到如下的代碼,注意是以xml格式組織的。

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>prop</Title>
<Shortcut>prop</Shortcut>
<Description>Code snippet for property and backing field</Description>
<Author>Microsoft Corporation</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>type</ID>
<ToolTip>Property type</ToolTip>
<Default>int</Default>
</Literal>
<Literal>
<ID>property</ID>
<ToolTip>Property name</ToolTip>
<Default>MyProperty</Default>
</Literal>
<Literal>
<ID>field</ID>
<ToolTip>The variable backing this property</ToolTip>
<Default>myVar</Default>
</Literal>
</Declarations>
<Code Language="csharp"><![CDATA[private $type$ $field$;

public $type$ $property$
{
 get { return $field$;}
 set { $field$ = value;}
}
$end$]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

  在上面的代碼中,其中的header部分簡單描述了關于這個snippets的信息,如名稱,快捷方式,作者,備注等。在<snippets>節點下,則逐個定義了在snippets中出現的屬性,其中<default>指出了該屬性默認的值。而在關鍵部分<code>,用<![CDATA]>的方式定義了snippets的基礎架構,其中用$參數名的方式定義每個屬性,十分簡單。

  如果要創建自己的snippets,是十分簡單的,最簡單的是使用比如記事本等編輯工具,新建一個后綴為snippet的 XML文件,仿照上面的格式就可以設計了。當完成后,可以在snippets管理器中通過導入完成的snippet就可以增加一個新的snippet了。此外,還可以到http://msdn.microsoft.com/vbasic/downloads/tools/snippeteditor/去下載一個snippet 編輯器,可以方便地進行編輯snippet。

  在啟動這個snippets編輯器后,默認使用的是vb.net,如下圖所示。如果想查看已經存在的snippets,可以先在鼠標右鍵彈出的菜單中選擇"add path",然后添加vb.net的snippets所在的路徑(默認是vs.net 2005安裝目錄下\VB\Snippets子目錄中),則可以很方便地查看已經存在的snippets的代碼了。如果想查找已有的snippets,則可以在左上角的文本框中輸入要搜索的內容,再按綠色的apply按鈕就可以查找了。

  假如要創建自己的snippets時,可以首先在左則已有的目錄下增加一個snippets,比如現在要創建一個叫InstanceProperty的 snippets,可在common code patterns分類下的proerties and procedures子類添加,將其命名為InstanceProperty。

  接著,在右邊的編輯窗口中,可以按照snippets的規則寫入如下的代碼:

Private $PrivateVariable$ As $PropertyType$
Public Property $PropertyName$() As $PropertyType$
Get
 If $PrivateVariable$ Is Nothing Then
  $PrivateVariable$ = New $PropertyType$
 End If
 Return $PrivateVariable$
End Get
Set(ByVal value As $PropertyType$)
 $PrivateVariable$ = value
End Set
End Property

  寫完后,可以點選priview選項卡,來進行效果的預覽。而在下方的replacement選項卡中,是用來進行參數默認的設置的,當設置默認值后,只要用戶一調用該codesnippet,則對應的參數轉換為該默認值,比如要將PrivateVariable的默認值設置為abc, PropertyType的值可以默認設置為User自定義類型,PropertyName設置為setUser,則將上述snipeet保存后,下次調用snippet時,會轉換為以下代碼:

Private abc As User
Public Property setUser() As User
Get
 If abc Is Nothing Then
  abc = New User
 End If
Return abc
End Get
Set(ByVal value As String)
 abc = value
End Set
End Property

  小結

  本文簡單介紹了在vs.net 2005中,如何使用code snippets代碼助手簡化編程,用戶可以根據自己的需要,加入更多自定義的代碼助手功能,這將大大提高工作效率。

:http://www.7dspace.com/doc/24/0603/200632121214937175_2.htm

posted on 2006-04-20 19:26 夢在天涯 閱讀(1473) 評論(1)  編輯 收藏 引用 所屬分類: C#/.NET

評論

# re: VS2005中用Code Snippets提高開發效率 2006-04-20 19:40 夢在天涯

想起這個題目,不得不由衷地佩服MS的細心度,我們想到了沒有想到的他都給我們想到了。讓我們盡可能的解放coding之苦。

  程序員,不得不在thinking 和coding之間進行痛苦的折磨,然而coding占去了我們的大量寶貴的時間。我們重復重復又重復著那些一輩子都不會忘掉的代碼,重復重復又重復的重復著那些被我們敲爛的代碼。

  發現這個還是一次偶然的機會,我自定義了一個Prop函數,結果在按下去的時候不小心碰到了Tab鍵結果出現了以下的代碼:

private int myVar; public int MyProperty { get { return myVar;} set { myVar = value;} }

  熟悉的朋友應當已經發現這是一個標準的設置屬性的字段。為什么我輸入了Prop會自出來這些呢?帶著疑問找到了google大法,原來已經早就有人發現了:這是2005的一個特色之一:代碼段。

  代碼段是提供了將現成的代碼段插入到項目中的方法。它可以方便的把我們常用的一些代碼用"快捷鍵"的方式讓我們迅速的輸入到IDE中。這里我不知道怎么形容,暫且用快捷鍵來代替吧。

  具體的輸入方法:例如:我們輸入Prop然后回車,接著按著Tab幾秒鐘,IDE就會自動給我們添加上去代碼段所定義的代碼。而且支持可修改部分,我們可以方便的接著使用Tab來穿梭于各個可修改部分。

  有人會有疑問,這些代碼段怎么來的呢?IDE已經給我們自帶了一部分,我們也可以根據自己的偏好來進行自行創建。

  打開VS2005的 \VC#\Snippets\2052\Visual C# 目錄,我們會發現有一些以.snippet結尾的文件,這些就是系統給我們默認定義好的代碼段。我們用文本文檔打開,不難發現其實就是標準的XML文件。現對照if代碼段進行一些講解(對應文件為if.snippet)。看起代碼:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"
<CodeSnippet Format="1.0.0">//以上是代碼段的一個標準格式 <Header>
<Title>if</Title>
//代碼段的說明部分,指定代碼段的標題。可以顯示在代碼段插入和代碼段管理器的代碼段說明部分。
<Shortcut>if</Shortcut>
//代碼段的快捷方式。就是輸入后按著Tab自動產生代碼
<Description>if 語句的代碼段</Description>
//指定代碼段內容的說明信息,它可以給我們在使用代碼段的時候提供工具提示,并且可以在代碼段管理器中提供說明
<Author>Microsoft Corporation</Author>
//版權信息
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
//以上部分指定vs如何插入代碼段。SurroundsWith允許代碼段放置在選定代碼快的周圍,而Expansion的值允許將代碼段插入光標所在的位置。
</Header>
<Snippet>
//此處開始指定代碼的引用、導入、聲明代碼。主體部分
<Declarations>
//指定當前作為代碼段組成部分的文本和對象,對代碼段可以編輯部分。
<Literal>//<Literal> 段定義可編輯的代碼段的文本。他用與標識對代碼快的替換。我們可以使用Tab來進行切換修改。可以按照函數的概念來理解。這里就是我們傳遞參數值
<ID>expression</ID>
//替代標識
<ToolTip>要計算的表達式</ToolTip>//提示文本
<Default>true</Default>//默認值
</Literal>//若需多個,則可重復<Literal>代碼段。
</Declarations>
<Code Language="csharp">
<![CDATA[if ($expression$) { $selected$ $end$ }]]>
</Code>//看code部分代碼段。這里就是我們的核心部分。其中Language可以指定我們在用什么語言開發的時候使用此類代碼段。
<! [CDATA[部分就是我們標準的C#語法了。if ($expression$)看清楚if()括號部分的代碼,這里就是使用到我們在<Literal>部分定義的替代標識了。以$開始和結束,由于我們在定義的時候制定了默認值為true,所以在使用代碼段的時候等價于if(true)。而括弧部分就是主體$selected$表示此處可以被選擇,$ end$表示代碼段結束。
</Snippet>
</CodeSnippet>
</CodeSnippets>

  看,通過上邊的分析,代碼段是不是很簡單。我們在對照一下核心部分代碼:

  代碼段部分代碼:

if ($expression$) { $selected$ $end$ }

  正常語句代碼:

if (條件) { 代碼 }

  了解了這些知識,那么我們該如何創建自己的代碼段呢。最簡單的方法就是用記事本,當然要十分熟悉這些語句。另外IDE也給我們提供了創建文件的方法。

  [文件]→[新建文件] →[XML文件],重新命名為:mytest. Snippet,一定要以snippet結尾,否則以后沒有辦法使用此代碼段。參照上邊的講解,相信大家不難以葫蘆畫瓢來創建自己的代碼段。

  建立好了,我們該怎么使用呢?[工具]→[代碼段管理器] →[導入]即可。代碼段管理器可以方便的瀏覽現有的代碼段。我們也可以把自己做好的代碼段共享給別人,只要別人通過代碼段管理器就可以導入制訂好的代碼段。很方便。

  另外我們還可以創建VSI安裝文件來進行安裝使用。相信大部分人對VSI安裝文件都有所了解了,熟悉的初學者開發工具包就是利用VSI文件發布的。具體的方法請看我的后續文章。用好2005之創建安裝程序 (.vsi)

  通過以上介紹,相信大家會對代碼段有一個很清楚的了解。我們可以通過"代碼段管理器"方便的瀏覽已經存在的代碼段以及它們的含義。

  代碼段是預編寫的代碼片段,您可以隨時使用 Visual Studio 2005 將這些代碼片段插入到您的應用程序中。這些代碼段減少了鍵入重復代碼或搜索示例所用的時間,從而提高了工作效率。

  我們的口號是:只做對的,不做慢的。歡迎大家進行交流。

  回復  更多評論   

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1812199
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久疯狂做爰流白浆xx| 久久精品视频导航| 亚洲国产91精品在线观看| 午夜精品久久一牛影视| 国产亚洲制服色| 久久久www免费人成黑人精品| 欧美中文字幕精品| 亚洲国产高清在线| 91久久精品国产91久久| 欧美视频二区| 久久久久九九视频| 欧美成人一区二区在线| 亚洲午夜av在线| 性xx色xx综合久久久xx| 在线国产精品一区| 亚洲精品国产精品国自产在线| 国产精品久久久久久久app| 久久蜜桃资源一区二区老牛| 欧美成人日韩| 欧美在线观看日本一区| 免费在线观看日韩欧美| 一区二区激情视频| 欧美在线1区| 亚洲天堂av图片| 久久爱www| 亚洲一线二线三线久久久| 久久久久久久久久看片| 中国女人久久久| 久久全国免费视频| 先锋影音久久久| 欧美激情第9页| 久久久免费精品视频| 久久国产精品久久久| 欧美大片va欧美在线播放| 国产精品久久久久aaaa| 免费亚洲电影| 国产免费亚洲高清| 日韩亚洲欧美成人| 亚洲二区在线视频| 欧美在线黄色| 篠田优中文在线播放第一区| 欧美激情亚洲视频| 欧美xart系列高清| 韩国一区二区三区美女美女秀| av成人福利| 一本综合久久| 免费成人黄色av| 久久午夜视频| 国内精品视频在线观看| 一区二区三区日韩精品| 99伊人成综合| 欧美肥婆在线| 亚洲第一网站| 亚洲精品免费一区二区三区| 久久久久久久综合| 久久手机免费观看| 国产欧美视频一区二区| 亚洲欧美另类久久久精品2019| 亚洲一区二区三区午夜| 欧美欧美天天天天操| 亚洲精品国产拍免费91在线| 亚洲精品久久久久久久久久久久久| 久久久久**毛片大全| 久久躁日日躁aaaaxxxx| 红桃视频亚洲| 猛男gaygay欧美视频| 麻豆视频一区二区| 在线看不卡av| 毛片精品免费在线观看| 亚洲国产天堂久久国产91| 亚洲激情在线观看| 欧美激情免费在线| 亚洲日本aⅴ片在线观看香蕉| 亚洲精品四区| 欧美日韩在线直播| 亚洲一区久久久| 午夜视频在线观看一区二区三区 | 亚洲三级电影在线观看| 欧美激情一区二区在线 | 亚洲国产毛片完整版| 亚洲人成网站在线播| 欧美日本韩国一区二区三区| 一区二区三区黄色| 欧美一区激情视频在线观看| 黄色日韩网站| 欧美激情一区二区三区蜜桃视频| 亚洲免费精彩视频| 午夜性色一区二区三区免费视频 | 欧美日韩午夜激情| 西瓜成人精品人成网站| 亚洲国产成人av好男人在线观看| 亚洲视频电影图片偷拍一区| 国产热re99久久6国产精品| 久久亚洲国产精品一区二区 | 国产精品盗摄久久久| 久久大香伊蕉在人线观看热2| 农夫在线精品视频免费观看| 亚洲午夜激情| 激情六月婷婷综合| 欧美精品一区二区蜜臀亚洲| 亚洲综合三区| 91久久久久久久久久久久久| 欧美一区二区三区四区视频| 亚洲国产欧美不卡在线观看| 国产精品视频yy9299一区| 久久一区二区视频| 亚洲伊人伊色伊影伊综合网| 欧美二区视频| 久久精品人人| 亚洲欧美日韩天堂| 亚洲人成毛片在线播放| 国产色产综合产在线视频| 欧美精品二区| 美女成人午夜| 久久成人18免费观看| 亚洲视频播放| 亚洲精品日韩一| 欧美大色视频| 久久精品中文| 欧美一区激情| 午夜一级在线看亚洲| 夜夜精品视频一区二区| 亚洲第一狼人社区| 国产在线视频欧美| 国产欧美日韩视频一区二区三区| 欧美伦理91i| 欧美高潮视频| 麻豆精品在线视频| 久久人人九九| 久久在线视频| 久久久蜜桃精品| 久久精品综合一区| 久久激情五月婷婷| 久久成人在线| 久久久久久久国产| 久久久久久一区二区| 午夜精品一区二区三区在线视 | 亚洲女女做受ⅹxx高潮| 在线一区观看| 亚洲一级片在线观看| 99这里只有久久精品视频| 亚洲精品孕妇| 制服丝袜激情欧洲亚洲| 一区二区av| 亚洲视频精品| 午夜精品久久久久久久99热浪潮 | 亚洲欧美日韩国产精品| 亚洲夜晚福利在线观看| 亚洲欧美成人| 欧美综合国产| 麻豆国产精品一区二区三区| 美日韩精品免费| 欧美日韩国产麻豆| 国产精品扒开腿爽爽爽视频| 国产精品视频久久| 激情亚洲成人| 亚洲三级性片| 亚洲欧美文学| 久久综合九色综合网站| 欧美福利网址| 一区二区电影免费观看| 亚洲欧美日本伦理| 久久看片网站| 欧美三级网址| 精品福利av| 亚洲视频网在线直播| 香蕉久久夜色精品国产使用方法| 欧美制服丝袜| 国产伦精品一区二区三区免费| 米奇777在线欧美播放| 欧美高清视频免费观看| 国产精品高潮呻吟| 国产专区欧美精品| 亚洲美女在线视频| 欧美一区二区高清在线观看| 欧美大胆成人| 亚洲欧美精品在线| 欧美aa国产视频| 国产日韩欧美在线视频观看| 亚洲国产日韩美| 欧美一区精品| 亚洲精品免费在线| 久久成人资源| 国产精品黄色| 亚洲精品影视| 久久久噜噜噜久久人人看| 日韩亚洲精品电影| 久久资源在线| 国产亚洲欧美一区在线观看| 亚洲精品在线一区二区| 久久国产精品亚洲77777| 亚洲精品国产系列| 久久一区激情| 国产永久精品大片wwwapp| 亚洲视频在线一区| 亚洲第一精品夜夜躁人人躁| 久久激情视频免费观看| 国产精品视频一区二区高潮| 夜色激情一区二区| 亚洲二区精品|