在visual studio 2005的时候就有了代码片段的功能,相信很多人都知道怎么使用这个功能,写这篇主要是和还不知道这个功能的朋友分享一下。
代码片段这个功能大家天天都在用,它就是相当于代码的一个快捷方式,提高编码的效率。
例如,我们在写for循环的时候直接写完for之后按两下tab键,代码就能自动补全。当然这个功能不仅仅限于C#代码,还有js,vb,xml等等。大家可以在visual studio的“工具”菜单中的“代码管理器”中查看(快捷键Ctrl+K,Ctrl+B)。
还有一点比较好的是,我们可以自己定义代码片段。
以下是C#中常用到的代码快捷方式:
名称(或快捷方式) |
描述 |
插入代码段的有效位置 |
---|---|---|
#if |
创建 #if 指令和 #endif 指令。 |
任意位置。 |
#region |
创建 #region 指令和 #endregion 指令。 |
任意位置。 |
~ |
为包含类创建析构函数。 |
在类中。 |
属性 |
为从 Attribute 派生的类创建声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
Checked |
创建 checked 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
class |
创建类声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
ctor |
为包含类创建构造函数。 |
在类中。 |
cw |
创建对 WriteLine 的调用。 |
在方法、索引器、属性访问器或事件访问器中。 |
do |
创建 dowhile 循环。 |
在方法、索引器、属性访问器或事件访问器中。 |
else |
创建 else 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
enum |
创建 enum 声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
equals |
创建一个方法声明,该声明对 Object 类中定义的 Equals 方法进行重写。 |
在类或结构中。 |
exception |
为某个从异常(默认情况下为 Exception)派生的类创建声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
for |
创建 for 循环。 |
在方法、索引器、属性访问器或事件访问器中。 |
foreach |
创建 foreach 循环。 |
在方法、索引器、属性访问器或事件访问器中。 |
forr |
创建一个 for 循环,在每次循环之后递减循环变量。 |
在方法、索引器、属性访问器或事件访问器中。 |
if |
创建 if 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
Indexer — 索引器 |
创建索引器声明。 |
在类或结构中。 |
接口 |
创建 interface 声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
invoke |
创建可安全调用事件的块。 |
在方法、索引器、属性访问器或事件访问器中。 |
迭代器 |
创建迭代器。 |
在类或结构中。 |
iterindex |
使用嵌套类创建“命名的”迭代器和索引器对。 |
在类或结构中。 |
lock |
创建 lock 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
mbox |
创建对 MessageBox.Show 的调用。 您可能必须添加对 System.Windows.Forms.dll 的引用。 |
在方法、索引器、属性访问器或事件访问器中。 |
namespace |
创建 namespace 声明。 |
在命名空间(包括全局命名空间)中。 |
prop |
创建自动实现属性声明。 |
在类或结构中。 |
propfull |
创建具有 get 和 set 访问器的属性声明。 |
在类或结构中。 |
propg |
创建具有私有“set”访问器的只读自动实现的属性。 |
在类或结构中。 |
sim |
创建 staticint Main 方法声明。 |
在类或结构中。 |
struct |
创建 struct 声明。 |
在命名空间(包括全局命名空间)、类或结构中。 |
svm |
创建 staticvoid Main 方法声明。 |
在类或结构中。 |
switch |
创建 switch 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
try |
创建 try-catch 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
tryf |
创建 try-finally 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
Unchecked |
创建 unchecked 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
unsafe |
创建 unsafe 块。 |
在方法、索引器、属性访问器或事件访问器中。 |
使用 |
创建 using 指令。 |
在命名空间(包括全局命名空间)中。 |
while |
创建 while 循环。 |
在方法、索引器、属性访问器或事件访问器中。 |
那么如何创建自己的代码片段呢?
以下是代码段的模板,大家可以新建一个文件,然后把它拷贝进去。
1 <?xml version="1.0" encoding="utf-8"?> 2 <CodeSnippets 3 xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> 4 <CodeSnippet Format="1.0.0"> 5 <Header> 6 <Title></Title> 7 </Header> 8 <Snippet> 9 <Code Language=""> 10 <![CDATA[]]> 11 </Code> 12 </Snippet> 13 </CodeSnippet> 14 </CodeSnippets>
最简单的方式是,大家在代码管理工具中查看自己所用语言的目录,然后复制里面的文件直接改就行。
从上图中,我们也大概知道了代码段文件中的元素标签代表的是什么。所以,我们可以根据自己使用的语言,然后直接复制一个visual studio的内置的文件,改写一下就行。例如下面是一个静态方法的创建的代码片段(直接用的是sim.sinippet文件)
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>ssf</Title> 6 <Shortcut>ssf</Shortcut> 7 <Description>string MyFunc() 的代码片段</Description> 8 <Author>流年、落了谁</Author> 9 <SnippetTypes> 10 <SnippetType>Expansion</SnippetType> 11 </SnippetTypes> 12 </Header> 13 <Snippet> 14 <Code Language="csharp"> 15 <![CDATA[static string MyFunc() 16 { 17 $end$ 18 return null; 19 }]]> 20 </Code> 21 </Snippet> 22 </CodeSnippet> 23 </CodeSnippets>
打开管理工具,直接就能看到我么刚才写的代码段,然后试试效果
如果你懒得把代码拷来拷去的话,你也可以使用一个简单的工具Snippet Editor 关于如何使用这个工具,大家点击进去查看就行。
链接无效的话,你可以把这个地址拷贝到你的浏览器中 http://snippeteditor.codeplex.com/
现在你可以去试试怎么创建你的代码片段了,是不是写代码唰唰的,搂不住了,^_^
时间: 2024-11-10 12:57:47