在VS編輯器里寫C#代碼的時候,如果你敲一個foreach,然后敲一下Tab鍵,VS就會自動幫我們補全代碼:
foreach (var item in collection)
{
}
打開VS的代碼管理器:工具->代碼片段管理器,如下圖所示:
代碼片段管理器
Visual Studio默認已經給我們寫了好多代碼片段了,如果你覺得這些代碼片段不夠用,想自定義一個代碼片段的話,步驟如下:
編輯代碼片段
新建一個代碼片段文件,```注:代碼片段是xml文件,以.snippet為后綴名``,比如我自定義了一個代碼片段,文件名是bpr.snippet,右擊該文件,在編輯器中打開進行編輯:
<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>產品響應實體</Title>
<Shortcut>bpr</Shortcut>
<Description>獲取產品響應實體的代碼片段</Description>
<Author>心徹</Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
<SnippetType>SurroundsWith</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Imports>
<Import>
<Namespace></Namespace>
</Import>
</Imports>
<References>
<Reference>
<Assembly></Assembly>
</Reference>
</References>
<Declarations>
<Literal>
<ID>name</ID>
<ToolTip>銷售一體化DSF調用</ToolTip>
<Default>MyTestMethod</Default>
</Literal>
<Literal Editable="false">
<ID>TestMethod</ID>
<Function>SimpleTypeName(global::Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod)</Function>
</Literal>
</Declarations>
<Code Language="csharp">
<![CDATA[
/// <summary>
/// 方法功能描述
/// </summary>
/// <param name="request">The request.</param>
/// <returns></returns>
public ProductBaseResponse<XXX> GetPromotion(BaseRequest request)
{
if (request == null)
{
return new ProductBaseResponse<XXX> { ResCode = (int)ResultCode.PE_請求參數錯誤, ResMsg = "請求信息不能為空" };
}
return ClientWrap.Action<ProductBaseResponse<XXX>>(Enum.ServiceGroupEnum.XXX, request, null).Result();
$end$
}]]></Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>
保存。
導入自定義代碼片段
在代碼片段管理器中選中你要導入的文件夾,點擊“導入”按鈕,選擇你剛才編輯的代碼片段文件,確認即可。
使用自定義代碼片段
在VS代碼編輯器里輸入bpr,然后敲一下Tab鍵,則會自動補全你在代碼片段里寫的代碼啦。
節點說明
- <Title>表示此代碼片段的標題
- <Shortcut>快捷方式
- <Description>對代碼片段的描述
- <SnippetTypes>可以包含多個<SnippetType>,但其取值只有三種:Expansion、SurroundsWith、Refactoring。
Expansion允許代碼插入在光標處;
SurroundsWith允許代碼圍繞在選中代碼兩邊;
Refactoring指定了C#重構過程中所使用的Snippet,在自定義Snippet中不能使用。如果該值不做設置,則Snippet可以放在任何地方。
<Snippet>節點是實現代碼管理的地方,其包含四個子節點<Code><Declarations><Imports><References>
1.<Code>
包含<![CDATA[]]>中,放置模版代碼,此節點設置Language(C# VB XML),Kind(類型:如方法體,方法聲明),Delimiter(分隔符,默認值是$)
2.<Declarations>
包含多個<Literal>和<Object>節點,<Literal>用于指定文本值<Object>用于聲明模版對象。筆者自理解為一個函數。以便code調用.
3.<Imports>
引入命名空間,只支持vb . - -#.
4.<References>
添加程序集引用,只支持vb . - -#.
參考:Visual Studio 的代碼片段(Code Snippet)功能
擴展:Silverlight Code Snippets for DependencyProperties and other Handy Stuff