Visual Studio 中的Code Snippet(代码片段)功能介绍

1、Code Snippet(代码片段)功能介绍

平常我们在使用Visual Studio 进行开发时,可以看到Intellisense提示如下内容

这种就是代码片段的提示。如输入cw后,按两次Tab键,即可输入Console.WriteLine();

代码片段是小块可重用代码,可通过右键单击菜单(关联菜单)命令或热键组合插入到代码文件中。 

2、Visual Studio 中预置的代码片段(C#)

代码片段功能可用位置
#if创建 #if 指令和 #endif 指令。任何位置。
#region创建 #region 指令和 #endregion 指令。任何位置。
~创建包含类的终结期(析构函数)。在类中。
attribute为派生自 Attribute 的类创建声明。在命名空间(包括全局命名空间)、类或结构中。
checked创建 checked 块。在方法、索引器、属性访问器或事件访问器内。
class创建类声明。在命名空间(包括全局命名空间)、类或结构中。
ctor创建包含类的构造函数。在类中。
cw创建对 WriteLine 的调用。在方法、索引器、属性访问器或事件访问器内。
do创建 do while 循环。在方法、索引器、属性访问器或事件访问器内。
else创建 else 块。在方法、索引器、属性访问器或事件访问器内。
enum创建枚举声明。在命名空间(包括全局命名空间)、类或结构中。
equal创建一个方法声明,该声明对 Object 类中定义的 Equals 方法进行重写。在类或结构中。
exception为某个从异常(默认情况下为 Exception)派生的类创建声明。在命名空间(包括全局命名空间)、类或结构中。
for创建 for 循环。在方法、索引器、属性访问器或事件访问器内。
foreach创建 foreach 循环。在方法、索引器、属性访问器或事件访问器内。
forr创建 for 循环,每次迭代后会减少循环变量。在方法、索引器、属性访问器或事件访问器内。
if创建 if 块。在方法、索引器、属性访问器或事件访问器内。
indexer创建索引器声明。在类或结构中。
interface创建接口声明。在命名空间(包括全局命名空间)、类或结构中。
invoke创建安全调用事件的块。在方法、索引器、属性访问器或事件访问器内。
iterator创建迭代器。在类或结构中。
iterindex使用嵌套类创建“已命名”迭代器和索引器对。在类或结构中。
lock创建 lock 块。在方法、索引器、属性访问器或事件访问器内。
mbox创建对 System.Windows.Forms.MessageBox.Show 的调用。 可能还需要添加对 System.Windows.Forms.dll 的引用 。在方法、索引器、属性访问器或事件访问器内。
namespace创建命名空间声明。在命名空间(包括全局命名空间)中。
prop创建自动实现的属性声明。在类或结构中。
propfull创建具有 get 和 set 访问器的属性声明。在类或结构中。
propg创建具有专用 set 访问器的只读自动实现的属性在类或结构中。
sim创建 static int Main 方法声明。在类或结构中。
struct创建结构声明。在命名空间(包括全局命名空间)、类或结构中。
svm创建 static void Main 方法声明。在类或结构中。
switch创建 switch 块。在方法、索引器、属性访问器或事件访问器内。
try创建 try-catch 块。在方法、索引器、属性访问器或事件访问器内。
tryf创建 try-finally 块。在方法、索引器、属性访问器或事件访问器内。
unchecked创建 unchecked 块。在方法、索引器、属性访问器或事件访问器内。
unsafe创建 unsafe 块。在方法、索引器、属性访问器或事件访问器内。
using创建 using 指令。在命名空间(包括全局命名空间)中。
while创建 while 循环。在方法、索引器、属性访问器或事件访问器内。

3、创建代码片段

创建代码片段的基本格式如下:

 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></Title>
 6           <Shortcut></Shortcut>
 7           <Description></Description>
 8           <Author></Author>
 9         </Header>
10         <Snippet>
11             <Code Language="">
12                 <![CDATA[]]>
13             </Code>
14         </Snippet>
15     </CodeSnippet>
16 </CodeSnippets>

这里我们创建一个输入当前时间的代码片段,简写为 dt

使用Visual Studio 创建一个XML文档,内容如下:

 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>dt</Title>
 6            <Shortcut>dt</Shortcut>
 7            <Description>DateTime.Now的代码片段</Description>
 8            <Author>zhaotianff</Author>
 9          </Header>
10          <Snippet>
11             <Declarations>
12                 <Literal>
13                     <ID>expression</ID>
14                     <ToolTip>日期类型</ToolTip>
15                     <Function>SimpleTypeName(global::System.DateTime)</Function>
16                 </Literal>
17                 <Literal>
18                     <ID>dt</ID>
19                     <ToolTip>变量名</ToolTip>
20                     <Default>dt</Default>
21                 </Literal>
22             </Declarations>
23             <Code Language="csharp"><![CDATA[var $dt$ = $expression$.Now;$end$]]>
24             </Code>
25         </Snippet>
26      </CodeSnippet>
27  </CodeSnippets>

格式说明:

Header:用于指定有关 IntelliSense 代码段的常规信息

Title:代码段的友好名称

Shortcut:快捷输入文本,这里用的是 dt

Description:描述。这会显示在Visual Studio的提示上,在后面的截图可以看到

Author:作者

Snippet :指定代码片段的引用、导入、声明以及代码内容

Declarations:声明字面量或对象

Literal:定义可以编辑的代码段的文本(字面量)

ID :指定字面量的唯一标识符(这个元素是必需的)

Default :指定插入代码段时字面量的默认值(这个元素是必需的)

Function :元素 指定当文本在 Visual Studio 中获得焦点时要执行的函数

ToolTip :元素 用于描述文本的预期值和用法

最关键的就是Code元素,在这里定义代码片段中的代码内容。

Code元素有两个保留的关键字:$end$ 和 $selected$

$end$ 标记在插入代码段之后用于放置光标的位置。

$selected$ 表示在文档中选择的要在调用时插入代码段的文本(如果定义了字面量,会直接选择字面量,当按下回车后,会跳到$selected$的位置)

Code元素支持三种属性

Language:用于标识当前的代码片段用于哪种编程语言,可选项(VB、CSharp、CPP、XAML、XML、JavaScrip、TypeScript、SQL、HTML)(这个选项是必需的)

Kind:用于标识 代码片段可以用于哪个位置。(这个属性是可选的)

method body(用于方法内部)、method decl (用于方法定义)、type decl (用于类型定义)、file (完整的代码定义,可用于任何位置)、any(任何位置)

$:分隔符,可以描述字面量或对象

示例代码说明

在示例代码中定义了两个字面量

 1 <Literal>
 2     <ID>expression</ID>
 3     <ToolTip>日期类型</ToolTip>
 4     <Function>SimpleTypeName(global::System.DateTime)</Function>
 5 </Literal>
 6 <Literal>
 7      <ID>dt</ID>
 8      <ToolTip>变量名</ToolTip>
 9      <Default>dt</Default>
10 </Literal>

第一个使用了Function元素,代表这里会执行System.DateTime

第二个是一个可选输入,使用了Default元素来标识默认值

1 <Code Language="csharp"><![CDATA[var $dt$ = $expression$.Now;$end$]]>

Code元素中,指定语言为CSharp,在<![CDATA[...]]>中输入代码片段 var $dt$ = $expression$.Now;$end$

$dt$是前面定义的字面量,按下Tab键后,会自动选中该值

$expression$是前面定义的字面量,代表System.DateTime

$end$代表代码片段结束后,光标所在的位置 

这里我们再对照VS内置的if代码片段来进行说明,定义如下:

 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>if</Title>
 6             <Shortcut>if</Shortcut>
 7             <Description>if 语句的代码片段</Description>
 8             <Author>Microsoft Corporation</Author>
 9             <SnippetTypes>
10                 <SnippetType>Expansion</SnippetType>
11                 <SnippetType>SurroundsWith</SnippetType>
12             </SnippetTypes>
13         </Header>
14         <Snippet>
15             <Declarations>
16                 <Literal>
17                     <ID>expression</ID>
18                     <ToolTip>要计算的表达式</ToolTip>
19                     <Default>true</Default>
20                 </Literal>
21             </Declarations>
22             <Code Language="csharp"><![CDATA[if ($expression$)
23     {
24         $selected$ $end$
25     }]]>
26             </Code>
27         </Snippet>
28     </CodeSnippet>
29 </CodeSnippets>

当输入if代码片段后,可以看到如下:

定义的字面量$expression$会被选中,修改后,按下回车,会跳到$selected$的位置。

这里还有一个元素,在上面的介绍中没有涉及到。

那就是Header元素下的SnippetType元素,该元素用于指定 Visual Studio 如何插入代码段。如果未指定,刚代表可以在任何位置插入。

SnippetType元素可以重复使用。可选值如下:

SurroundsWith允许将代码段放置在一段选定的代码周围。

Expansion允许将代码段插入到光标处。

Refactoring指定在 C# 重构过程中使用代码片段。 不能在自定义代码段中使用 Refactoring

4、管理代码片段

在工具菜单下,选择【代码片段管理器】项,可以打开代码片段管理器。

在这里可以管理已有的代码片段,也可以添加新的代码片段。

保存上面示例代码为dt.snippet文件

打开代码片段管理,点击添加,选择刚刚保存的dt.snippet文件

由于使用了 Language="csharp" 来标识 ,所以会自动放到CSharp类别下,并且会自动钩选 【My Code Snippets】文件夹。

5、使用导入的代码片段

输入 dt ,可以看到Visual Studio的提示。

按两下Tab键,即可以快速输入

1 var dt = DateTime.Now;

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要更新 Visual Studio Code 代码,你可以按照以下步骤进行操作: 1. 首先,确保你已经打开了需要更新的代码文件。 2. 接下来,你可以使用 Visual Studio Code 提供的编辑功能来修改代码。你可以添加、删除或修改代码行,以满足你的需求。 3. 如果你想使用预定义的代码片段来快速插入一些常用代码块,你可以使用 IntelliSense 功能来查找和插入代码片段。当你输入代码时,IntelliSense 会提供相关的代码片段建议,你可以选择其一个并按下 Enter 键来插入它。 4. 如果你想自定义代码片段或修改现有的代码片段,你可以打开 Visual Studio Code 的用户设置,并搜索 "代码片段" 相关的设置。在设置,你可以找到有关代码片段的配置选项,并根据提示进行修改。 5. 最后,当你完成对代码的更新后,你可以保存文件并测试修改后的代码是否按预期工作。 总结起来,要更新 Visual Studio Code 代码,你可以通过编辑代码文件、使用代码片段以及自定义代码片段来实现。记得保存文件并测试修改后的代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [[VS Code]跟我一起在Visual Studio Code 添加自定义snippet代码段),附详细配置](https://blog.csdn.net/maokelong95/article/details/54379046)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值