VS里的 代码片段(Code snippet)很有用,制作也很简单


工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器。

上一篇文章,介绍了一个Blog.Core项目来演示。

2. 制作

在我们编码的时候,任何会让我们重复的代码,都可以作为代码片段抽取出来,而它的制作也非常简单。只需4步,而前三步,也仅仅是准备工作,只需做一次就够了。以后就可以专注于对代码片段的增加修改与删除。

1. 首先我们需要创建一个文件夹,来存放我们要定制的代码片段。如:CodeSnippetsCSharp

2. 将此文件夹添加到  工具 > 代码片段管理器中。快捷键为 [ctrl+k,b]

3. 如果是 VS 2019则需要重启,VS2017 则不需要。其他版本没有进行测试。

4. 开始制作 code snippet。

它的本质是一个 xml文件,只需要复制已有的代码片段,然后进行部分修改,保存为.snippet文件到刚创建的文件夹 CodeSnippetsCSharp 之中,就可以直接在VS 之中使用了。

以我写的 methodAsync代码片段为例:各个节点已经用注释进行标注,其中***为重要的节点,而大部分节点是可选的,可有可无。可以直接复制下面的代码,进行修改,作为代码片段的模板。

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 3     <CodeSnippet Format="1.0.0">
 4         <Header>
 5             <Title>methodAsyncTitle> 
 6             <Shortcut>methodAsyncShortcut> 
 7             <Description>Code snippet for an async methodDescription>
 8             <Author>jinyafengAuthor> 
 9             <SnippetTypes> 
10                 <SnippetType>ExpansionSnippetType> 
11             SnippetTypes>
12         Header>
13         <Snippet>
14             <Declarations> 
15                 <Literal> 
16                     <ID>accessbilityID> 
17                     <ToolTip>AccessbilityToolTip> 
18                     <Default>publicDefault>
19                 Literal>
20                 <Literal>
21                     <ID>returnID>
22                     <ToolTip>Return TypeToolTip>
23                     <Default>intDefault>
24                 Literal>
25                 <Literal>
26                     <ID>methodID>
27                     <ToolTip>Method nameToolTip>
28                     <Default>MyMethodDefault>
29                 Literal>
30                 <Literal>
31                     <ID>parameterID>
32                     <ToolTip>Parameter nameToolTip>
33                     <Default>Default>
34                 Literal>
35             Declarations>
36             
37             
38             
39             <Code Language="csharp">$accessbility$ async Task<$return$> $method$Async($parameter$)
40             {
41                 $end$
42             }
43         ]]>
44             Code>
45             <Imports> 
46                 <Import> 
47                 <Namespace>System.Threading.TasksNamespace>
48                 Import>
49             Imports>
50         Snippet>
51     CodeSnippet>
52 CodeSnippets>

 3. 最后

以上所有代码片段均以放到了 github上,可以进行下载查看。https://github.com/jinyafeng/CustomCodeSnippetsCSharp

我们在日常的编码过程中,习惯对重复的代码进行封装,然后各个地方重用。但对于编写代码本身,也是可以进行封装与重用的,你有思考过吗?