一、名词解释

Code Snippet,代码模板,是一种快速生成代码的快捷方式,使用它可以有效地提高编程效率。

编程中可以使用Visual Studio提供的预先设置好的Code Snippet,也可以根据需要创建自己的Code Snippet。

二、使用方法演示

使用code snippet创建属性:

1. 输入prop,出现下图所示的提示:

2. 连按两下Tab键,得到如下代码:

3. 按一下Tab键,可以在橙色背景色的可更改字段之间来回跳转,编辑后得到自定义的属性:

public string FirstName { get; set; }

三、创建自己的Code Snippet

以创建具有通知功能的属性为例,该种属性是基于Caliburn.Micro框架的,写在ViewModel中,可与View界面上的控件进行绑定。

  1. 在Visual Studio的Tools菜单里,找到Code Snippets Manager,

  2. 在Language下拉框中选择Visual C#,

  3. 在Location下面的很多文件夹中,找到Visual C#文件夹,可以看到很多code snippet文件,根据路径打开该文件夹,

  4. 将propfull.snippet文件复制出来,我们将基于它修改得到自己的code snippet,重命名为propcn.snippet,cn是Caliburn.Micro和Notification的缩写,

  5. 打开propcn.snippet,开始修改,

  6. 修改<Header>中的代码为:

<Title>propcn</Title>
<Shortcut>propcn</Shortcut>
<Description>Code snippet for Notification property in Caliburn.Micro</Description>

修改<Code>中的代码为:

<Code Language="csharp">
<![CDATA[private $type$ $field$; public $type$ $property$
{
get { return $field$;}
set
 {
  $field$ = value;
   NotifyOfPropertyChange(() => $property$);
  }
}
$end$]]>
</Code>

7.  保存propcn.snippet,并将该新的code snippet文件剪切到Visual C#文件夹下,至此就创建好了自己的code snippet,试试打开Visual Studio使用它:

输入propcn,连按两下Tab键,得到如下代码片段,修改为自己需要的属性即可啦。

private string _firstName;

public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
NotifyOfPropertyChange(() => FirstName);
}
}

四、常用的Code Snippet

ctor → 构造函数

for → for循环

prop → 简化类型的属性

propfull → 完整属性

propdp → 依赖属性

五、添加XAML code snippet

主要步骤同上,找到XAML code snippet的文件夹,将新建的代码模板文件放入,在XAML中编程时输入缩写再敲击两下Tab键。

例如,2行2列的Grid模板:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
<Title>2X2 Grid</Title>
<Author>Microsoft Corporation</Author>
<Description>XAML snippet for a 2X2 Grid</Description>
<HelpUrl></HelpUrl>
<Shortcut>2by2Grid</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal Editable="true">
<ID>Height1</ID>
<ToolTip>Height of row 0</ToolTip>
<Default>*</Default>
<Function>
</Function>
</Literal>
<Literal Editable="true">
<ID>Height2</ID>
<ToolTip>Height of row 1</ToolTip>
<Default>*</Default>
<Function>
</Function>
</Literal>
<Literal Editable="true">
<ID>Width1</ID>
<ToolTip>Width of column 0</ToolTip>
<Default>*</Default>
<Function>
</Function>
</Literal>
<Literal Editable="true">
<ID>Width2</ID>
<ToolTip>Width of column 1</ToolTip>
<Default>*</Default>
<Function>
</Function>
</Literal>
</Declarations>
<Code Language="XAML">
<![CDATA[
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="$Width1$"/>
<ColumnDefinition Width="$Width2$"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="$Height1$"/>
<RowDefinition Height="$Height2$"/>
</Grid.RowDefinitions>
</Grid>
]]>
</Code>
</Snippet>
</CodeSnippet>

也可以下载一些现成的模板文件,例如CodePlex Archive 的XAML snippets:https://archive.codeplex.com/?p=xamlsnippets

创建自己的Code Snippet(代码模板)的更多相关文章

  1. 如何创建 Code Snippet

    比如有一行自定义代码段: @property (nonatomic,copy) NSString *<#string#>; 需要添加到 Code Snippet 上,以帮助开发人员开发更便 ...

  2. 善用VS中的Code Snippet来提高开发效率

    http://www.cnblogs.com/anderslly/archive/2009/02/16/vs2008-code-snippets.html http://www.cnblogs.com ...

  3. 善用VS中的Code Snippet来提高开发效率 分类: C# 2015-01-22 11:06 69人阅读 评论(0) 收藏

    前言  在谈谈VS中的模板中,我介绍了如何创建项目/项模板,这种方式可以在创建项目时省却不少重复性的工作,从而提高开发效率.在创建好了项目和文件后,就得开始具体的编码了,这时又有了新的重复性工作,就是 ...

  4. wpf Route Event Code Snippet

    将下面内容保存为snippet后缀文件,通过vs的代码片段管理工具导入即可,快捷键请按需修改: <?xml version="1.0" encoding="utf- ...

  5. iOS programming Code Snippet Library

    iOS programming  Code Snippet Library  The freebie code comes from the code snippet library. 代码来自cod ...

  6. 关于VS2015中的code snippet无法使用的问题

    什么是code snippet? Code snippets are small blocks of reusable code that can be inserted in a code file ...

  7. VS自定义代码块Code Snippet

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

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

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

  9. 使用 Code Snippet 简化 Coding

    在开发的项目的时候,你是否经常遇到需要重复编写一些类似的代码,比如是否经常会使用 for.foreach ? 在编写这两个循环语句的时候,你是一个字符一个字符敲还是使用 Visual Studio 提 ...

随机推荐

  1. AasyncTask中执行execute()还是executeOnExecutor()

    executeOnExecutor()api 11 才出现的 并行的 效率比execute()高因为execute()是串行的 import android.app.Activity; import ...

  2. handler通信机制

    package com.example.gp08_day26_handler3; import android.os.Bundle; import android.os.Handler; import ...

  3. viewstamp replication: A new primary copy method to support highly-avaliable d

    为了提高服务能力或者服务稳定,往往需要把数据重复布署,也就是replication.重复带来的问题是,更新的时候会带来不一致.一种比较简单的方法是,在N台重复的机器里选一台作为主机,其他作备份,只能通 ...

  4. 5.Javascript 原型链之原型对象、实例和构造函数三者之间的关系

    前言:用了这么久js,对于它的原型链一直有种模糊的不确切感,很不爽,隧解析之. 本文主要解决的问题有以下三个: (1)constructor 和 prototype 以及实例之间啥关系? (2)pro ...

  5. apicloud代码压缩和全局加密

    首先说代码压缩,因为没什么用,就先说它了.代码压缩后,apicloud里面的css和js文件里面的空格呀回车呀都去掉了,就是文件小了,所有代码显示为一行了.这些代码的变量没有重命名,我们知道jquer ...

  6. 【Java】JavaWeb文件上传和下载

    文件上传和下载在web应用中非常普遍,要在jsp环境中实现文件上传功能是非常容易的,因为网上有许多用java开发的文件上传组件,本文以commons-fileupload组件为例,为jsp应用添加文件 ...

  7. 2018.08.01 BZOJ4552: [Tjoi2016&Heoi2016]排序(二分+线段树)

    传送门 线段树简单题. 二分答案+线段树排序. 实际上就是二分答案mid" role="presentation" style="position: relat ...

  8. Django入门与实践-第16章:用户登录(完结)

    # myproject/settings.py LOGIN_REDIRECT_URL = 'home' EMAIL_BACKEND = 'django.core.mail.backends.conso ...

  9. 在windows7下创建ftp服务站点

    1.开始->控制面板->程序(点击“卸载程序”)->启动或关闭windows功能->Internet Information Services(Internet信息服务)-&g ...

  10. I/O Planning

    同一个BANK的电压必须是一样的,而电气特性则可以不同. 最近GTX调不出来,原来是电平不对 电源的影响 示波器看电源纹波 VCCO是为BANK的IO输出供电.比如LVCMOS33的信号,这个BANK ...