使用Code Snippet简化Coding  在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for、foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提供的Code Snippet 工具自动帮你生成呢?
神奇之处
  你只需要在代码编辑器中输入for,就会看到 Visual Studio 的自动提示框中出现了如下红框框起来的部分,这个时候只需要连按两下 tab 键,便会自动补全 for 循环语句(如图2所示),并且默认选中索引,以便你进行修改。


图 1  自动提示框


图 2  自动补全循环语句
  是不是很神奇? 与之类似的还有switch、cw (Console.WriteLine)、ctor(构造器)、prop(属性)等,灵活运用这些就可以让你的 Coding 工作事半功倍,更多默认 CodeSnippet 请查看参考资源[1]。
  但是,每个项目都有每个项目的特殊性,默认的这些 Code Snippet 如果无法满足您的需求,这个时候就需要自动动手来扩展了。
Code Snippet 的神秘面纱【C#】
  在动手开始写自己的 Code Snippet 之前,得先搞清楚这个玩意儿是怎么做到的。
  它其实只是一个 xml,只不过包含了一些只有 Visual Studio 才认识的元素,这些元素就定义了如何去替我们补全代码(,Code Snippet 针对不同的语言如VB、C#、CSS使用不同的元素,本文全部按照 C# 语言进行介绍)。

attribute.Snippet 文件源码  :C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC#\Snippets\2052\Visual C#

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>attribute</Title>
            <Shortcut>Attribute</Shortcut>
            <Description>使用建议模式的特性的代码片段</Description>
            <Author>Microsoft Corporation</Author>
            <SnippetTypes>
                <SnippetType>Expansion</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <ID>name</ID>
                    <ToolTip>特性的名称</ToolTip>
                    <Default>My</Default>
                </Literal>
                <Literal>
                    <ID>target</ID>
                    <Default>All</Default>
                </Literal>
                <Literal>
                    <ID>inherited</ID>
                    <Default>false</Default>
                </Literal>
                <Literal>
                    <ID>allowmultiple</ID>
                    <Default>true</Default>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttribute</ID>
                    <Function>SimpleTypeName(global::System.Attribute)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttributeUsage</ID>
                    <Function>SimpleTypeName(global::System.AttributeUsage)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>SystemAttributeTargets</ID>
                    <Function>SimpleTypeName(global::System.AttributeTargets)</Function>
                </Literal>
                <Literal Editable="false">
                    <ID>Exception</ID>
                    <Function>SimpleTypeName(global::System.NotImplementedException)</Function>
                </Literal>
            </Declarations>
            <Code Language="csharp"><![CDATA[[$SystemAttributeUsage$($SystemAttributeTargets$.$target$, Inherited = $inherited$, AllowMultiple = $allowmultiple$)]
sealed class $name$Attribute : $SystemAttribute$
{
    // See the attribute guidelines at
    //  http://go.microsoft.com/fwlink/?LinkId=85236
    readonly string positionalString;
    
   // This is a positional argument
   public $name$Attribute (string positionalString)
   {
        this.positionalString = positionalString;
        
       // TODO: Implement code here
       $end$throw new $Exception$();       
   }
   
    public string PositionalString
    {
        get { return positionalString; }
    }
   
   // This is a named argument
   public int NamedInt { get; set; }
}]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

待续。。。

Visual Studio 如何使用代码片段Code Snippet提高编程速度!!!的更多相关文章

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

    工欲善其事必先利其器,而 Visual Studio 就是我们的开发利器. 上一篇文章,介绍了一个很棒的快捷键,如果你还没用过这个快捷键,看完之后应该会豁然开朗.如果你已经熟练的应用它,也会温故而知新 ...

  2. Visual Studio中自定义代码段!

    Visual Studio中自定义代码段! 第一步:在编辑器中进行快捷键的输入[ctrl + shift + p] 或者 点击 查看 第一个选项就是!请看下图 第二步:选择你要配置代码段的语言, 这里 ...

  3. 艾伦 Visual Studio 批量自动化代码操作工具-VS插件发布

    艾伦 Visual Studio 批量自动化代码操作工具 以下简称--艾伦工具箱. 艾伦工具箱是一个多文件批量处理插件,目的是为了广大开发者提高开发效率,减少项目代码规范化审计,缩短开发者的项目开发周 ...

  4. Sublime Text自定制代码片段(Code Snippets)

    在编写代码的整个过程中,开发人员经常会一次又一次的改写或者重用相同的代码段,消除这种重复过程的方法之一是把我们经常用到的代码保存成代码片段(snippets),这使得我们可以方便的检索和使用它们. 为 ...

  5. Visual Studio Online & Web 版 VS Code

    Visual Studio Online & Web 版 VS Code https://online.visualstudio.com https://devblogs.microsoft. ...

  6. 用Visual Studio编辑Linux代码

    估计很多人都是用惯了Visual Studio的主,怎么也不适应Linux的一套编辑器,比如vim.source insight这些东西,可视化的eclipse效果还好点,但一般以远程共享一台Linu ...

  7. VS自定义代码块Code Snippet

    一  .简述 我们在开发当中,避免不了一些重复的开发工作,在你漫长的开发以及学习当中,你会发现有这么一部分代码是你时常会使用到的.我想这个工具也是针对这个原因出来的吧,它就是预先把你需要的这部分代码的 ...

  8. Xcode10 代码块(Code Snippet)添加和删除

    https://blog.csdn.net/lg767201403/article/details/82761448 Code Snippets 使用 https://blog.csdn.net/lv ...

  9. VS.PHP详细破解教程,用Visual Studio编写PHP代码插件PhpTools

    一.准备文件:(下载地址:http://download.csdn.net/detail/wulang1988/9662363) Default.aspx是解决在线破解文件:PhptoolCracke ...

随机推荐

  1. delete语句跑了3个小时分析以及关于并行的一些知识

    =====================START==================================== 闲来无事,看了下数据库跑的long running sql, SQL> ...

  2. OAF通过Iterator标准遍历各行

    这两天本人接到客户反映的bug:oaf的采购订单页面,在添加超过10行提交后,会出现空指针异常.原来,oaf的默认显示行数为10行,超过10行,页面会分页.报空指针异常,就是因为没有取到分页的行.之前 ...

  3. hadoop伪分布式平台搭建(centos 6.3)

    最近要写一个数据量较大的程序,所以想搭建一个hbase平台试试.搭建hbase伪分布式平台,需要先搭建hadoop平台.本文主要介绍伪分布式平台搭建过程. 目录: 一.前言 二.环境搭建 三.命令测试 ...

  4. Oracle11g的最佳灵活体系结构OFA

  5. Jackson将json字符串转换成泛型List

    Jackson,我感觉是在Java与Json之间相互转换的最快速的框架,当然Google的Gson也很不错,但是参照网上有人的性能测试,看起来还是Jackson比较快一点 Jackson处理一般的Ja ...

  6. BI cube的前世今生:商业智能BI为什么需要cube技术

    企业中常常会出现这样一幕幕尴尬的场景: 企业的决策人员需要从不同的角度来审视业务,协助他们分析业务,例如分析销售数据,可能会综合时间周期.产品类别.地理分布.客户群类等多种因素来考量.IT人员在每一个 ...

  7. documentbodyscrollTop的值总为零的解决办法

    有一个功能需要判断返回顶部按钮是否显示. JS代码如下: var sTop = document.body.scrollTop; if(sTop>100){ document.getElemen ...

  8. github 和 github for windows 学习使用总结

    github 是最大的开源项目托管平台,是一个网站.但是它不仅仅只能托管开源项目或代码,还能作为我们备份重要资料的平台,更重要的是我们可以通过这个平台来学习和获取别人的代码,避免重复造轮子,还可以多人 ...

  9. ISCC2016 WriteUp

    日期: 2016-05-01~ 注:隔了好久才发布这篇文章,还有两道Pwn的题没放,过一阵子放上.刚开始做这个题,后来恰巧赶上校内CTF比赛,就把重心放在了那个上面. 这是第一次做类似于CTF的题,在 ...

  10. SQL/LINQ/Lamda 写法[转发]

    SQL LINQ Lambda SELECT * FROM HumanResources.Employee from e in Employees select e Employees   .Sele ...