2021年5月16日星期日

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

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

上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗。如果你已经熟练的应用它,也会温故而知新。

这篇文章,介绍一下 VS里的 代码片段(Code snippet)。

1. 介绍

Code snippet 为可重用的代码片段, 相信使用 VS 的开发者都会经常的使用内置的代码片段,如 class、ctor、prop、if、else、switch、for、foreach、while、using 等。

它会定义一个代码片段,并包含着几个变量,有其默认值。我们可以通过tab键在这些变量之间跳动修改,最终修改为我们想要写的代码。

虽然使用这些基础的代码片段已经可以很舒服了,但或许我们还可以更舒服一些。

比如说我们写代码时总是会定义一些方法,需要写很多的部分 如:访问修饰符、返回值、方法名、参数、方法体大括号,等等。 步骤多且麻烦,还需要多次敲击空格。如果使用自定制的代码片段,就可以大大提升我们写方法的效率。

而现在的方法多为异步方法,需要加async关键字,返回值需要是Task<T>类型,方法名称一般用Async为后缀。我们可以再定制一个代码片段来阻止这些重复。

不知道细心的读者有没有看到,还自动引用了 System.Threading.Tasks 这个命名空间呢?

而在我们实际的开发中,很多的代码会有一些固定的结构,比如说仓储,借用代码片段可以快速写一个 Service 接口。这里借用了 Blog.Core项目来演示。

2. 制作

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

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

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

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

4. 开始制作 code snippet。

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

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

 1 <??> 2 <CodeSnippets ="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 3  <CodeSnippet Format="1.0.0"> 4   <Header> 5    <Title>methodAsync</Title> <!-- 标题,必须的。--> 6    <Shortcut>methodAsync</Shortcut> <!-- ***快捷键名称,是在VS里输入的,重要!--> 7    <Description>Code snippet for an async method</Description><!-- 描述,可选,不重要 --> 8    <Author>jinyafeng</Author> <!--作者,可选,不重要。 --> 9    <SnippetTypes> <!--片段类型,可选,不重要。 -->10     <SnippetType>Expansion</SnippetType> <!--代表基本类型,代码片段直接插入光标处,还有其他类型,如SurroundsWith,会把你选择的代码片段包进去,不好用不推荐。-->11    </SnippetTypes>12   </Header>13   <Snippet>14    <Declarations> <!--可以定义多个变量。-->15     <Literal> <!--单个变量的定义-->16      <ID>accessbility</ID> <!--***变量名称,重要!-->17      <ToolTip>Accessbility</ToolTip> <!--提示,可选,不重要-->18      <Default>public</Default><!--默认的文本值,可选,但有用。-->19     </Literal>20     <Literal>21      <ID>return</ID>22      <ToolTip>Return Type</ToolTip>23      <Default>int</Default>24     </Literal>25     <Literal>26      <ID>method</ID>27      <ToolTip>Method name</ToolTip>28      <Default>MyMethod</Default>29     </Literal>30     <Literal>31      <ID>parameter</ID>32      <ToolTip>Parameter name</ToolTip>33      <Default></Default>34     </Literal>35    </Declarations>36    <!--***核心定义阶段,其中 <![CDATA[]]> 是固定的格式。无需关心,真正关心的是里面的[]的内容,为变量+文本,而变量用双$$表示。-->37    <!-- Language 选择对应的语言,目前支持 VB,CSharp,CPP,XAML,-->38    <!--$end$ 是一个特殊变量,代表着按回车键 回到的地方,以继续写代码。-->39    <Code Language="csharp"><![CDATA[$accessbility$ async Task<$return$> $method$Async($parameter$)40    {41     $end$42    }43   ]]>44    </Code>45    <Imports> <!--要导入的命名空间列表。可选。-->46     <Import> <!--单个命名空间导入定义,如果当前文件已经导入,则不会重新导入。-->47     <Namespace>System.Threading.Tasks</Namespace>48     </Import>49    </Imports>50   </Snippet>51  </CodeSnippet>52 </CodeSnippets>

 3. 最后

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

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









原文转载:http://www.shaoqun.com/a/747775.html

跨境电商:https://www.ikjzd.com/

cima是什么:https://www.ikjzd.com/w/1372

优1宝贝:https://www.ikjzd.com/w/1507


工欲善其事必先利其器,而VisualStudio就是我们的开发利器。上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗。如果你已经熟练的应用它,也会温故而知新。这篇文章,介绍一下VS里的代码片段(Codesnippet)。1.介绍Codesnippet为可重用的代码片段,相信使用VS的开发者都会经常的使用内置的代码片段,如class、ctor、prop、if、el
review:https://www.ikjzd.com/w/2735
e邮宝:https://www.ikjzd.com/w/594.html?source=tagwish
易趣:https://www.ikjzd.com/w/210
困扰:变心后惨遭老公性折磨:http://lady.shaoqun.com/a/273414.html
贴心小秘知道我想要 撩起裙子狠狠让我发泄欲望:http://www.30bags.com/m/a/254722.html
一袋沙子在亚马逊上卖到100+,这是什么神仙沙?:https://www.ikjzd.com/home/20687

没有评论:

发表评论