• 2019-9-2-代码段


    title author date CreateTime categories
    代码段
    lindexi
    2019-09-02 12:57:38 +0800
    2018-2-13 17:23:3 +0800

    本文主要:如何制作Visual Studio 代码段,代码段作用,和如何使用。

    我们有时候会打出很多重复的代码,只是结构一样。

    例如属性

            /// <summary>
            /// 编码
            /// </summary>
            public Encoding encoding
            {
                set
                {
                    _encoding = value;
                }
                get
                {
                    return _encoding;
                }
            }
            private Encoding _encoding=Encoding.UTF8;

    属性我们可以使用

    prop 和按两次tab输入

    如果需要带字段,那么可以使用propfull,请看下面

            private string myVar;
    
            public string MyProperty
            {
                get { return myVar; }
                set { myVar = value; }
            }

    propfull

    但很多时候我们需要使用通知OnPropertyChanged,这时在 VisualStudio 就没有写好的,如果是写属性,这样每个都来增加一句OnPropertyChanged工作量重复很多。

    在之前,我就知道了有代码段,但是实在复杂,好在最近时间多,仔细看了一下。

    代码片段是小块可重用的代码,可使用上下文菜单命令或热键组合将其插入代码文件中。 代码片段通常包含常用的代码块(如 try-finally 或 if-else 块),可用于插入整个类或方法。

    代码段使用很简单,在类中,如果我们需要输入try-catch,我们可以按

    try tab tab

    try tab tab

        try 
    	{	        
    		
    	}
    	catch (Exception)
    	{
    
    		throw;
    	}

    如果是 VisualStudio 可以使用

    Ctrl+K 和 X 或 Ctrl+K 和 S

    visual studio 有的代码参见:https://msdn.microsoft.com/zh-cn/library/z41h7fat.aspx

    创建代码段可以使用snippet editor

    但是这个是比较旧

    我们可以使用创建模板

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets
        xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title></Title>
        </Header>
        <Snippet>
          <Code Language="">
            <![CDATA[]]>
          </Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>

    我们可以在visual studio创建xml文件写,这样比较容易

    如果使用笔记本,必须编码为utf-8,开始我弄成ascii就错了

    让我来告诉大家,代码的格式,代码段最先是CodeSnippets

    CodeSnippets说明: xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"

    然后就是他的格式,只需要复制下面的代码

    <CodeSnippet Format="1.0.0">

    下来Header,里面有标题、作者、描述、快捷键信息。标题是必填

    <Title>标题</Title>

    作者可以选,描述可以选

    <Author>lindexi_gd</Author>
     <Description>描述</Description>

    快捷键不是按下同时键,是输入一段代码就可以按tab的文字

    <Shortcut>ps</Shortcut>

    代码段核心是<Snippet> 里面有<Declarations>描述,code <Declarations>可以写每个参数的描述

    例如do代码就是这样写

    			<Declarations>
    				<Literal>
    					<ID>expression</ID>
    					<ToolTip>要计算的表达式</ToolTip>
    					<Default>true</Default>
    				</Literal>
    			</Declarations>

    ID写在![CDATA[使用变量名,<ToolTip>描述,<Default>默认值

    do

    代码写在![CDATA[,需要先写语言Language="csharp"告诉代码在什么语言使用。下面的例子是 do ,因为他的代码很少

    			<Code Language="csharp"><![CDATA[do
    	{
    	        $selected$ $end$
    	} while ($expression$);]]>
    			</Code>

    在上面代码可以看到存在两个$的,这就是参数,下面来告诉大家,什么是参数

    模板参数:

    模板参数声明和启用用两个$$把变量名写在$parameter$

    ![CDATA[可以使用$parameter$变量

    有一些变量名不能使用,具体有哪些,请看https://msdn.microsoft.com/zh-cn/library/eehb4faa.aspx

    写完了代码之后就需要导入。

    导入代码段方法

    导入代码段

    这里写图片描述

    这里写图片描述

    我们可以把之前写的代码导入到代码段,这里使用的是 ps tab

    这里写图片描述

    我们可以使用$selected$$end$ 来定位代码光标的开始

    在code可以加上Delimiter

    Delimiter 可选特性。指定用于描述代码中的文本和对象的分隔符。默认情况下,分隔符为 $。

    kind 代码段必须插入位置,方法,类中,请看https://msdn.microsoft.com/zh-cn/library/ms171418.aspx

    下面是一些常用的代码,直接复制就可以使用

    ps

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>ps</Title>
          <Author>lindexi</Author>
          <Description>插入属性</Description>
          <HelpUrl />
          <SnippetTypes />
          <Keywords />
          <Shortcut>ps</Shortcut>
        </Header>
        <Snippet>
    			<Declarations>
    				<Literal>
    					<ID>string</ID>
    					<Default>string</Default>
    					<ToolTip>类型名</ToolTip>
    				</Literal>
    				<Literal>
    					<ID>name</ID>
    					<Default>name</Default>
    					<ToolTip>属性名</ToolTip>
    				</Literal>
    			</Declarations>
          <Code Language="csharp" kind="method decl"><![CDATA[public $string$ $name$
    {
        set
        {
             _$name$=value;         
        }
        get
        {
             return _$name$;
        }
    }
    $slected$ $end$
    private $string$ _$name$;]]></Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>

    pvs

    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>pvs</Title>
          <Author>lindexi</Author>
          <Description>插入属性</Description>
          <HelpUrl />
          <SnippetTypes />
          <Keywords />
          <Shortcut>pvs</Shortcut>
        </Header>
        <Snippet>
    			<Declarations>
    				<Literal>
    					<ID>string</ID>
    					<Default>string</Default>
    					<ToolTip>类型名</ToolTip>
    				</Literal>
    				<Literal>
    					<ID>name</ID>
    					<Default>name</Default>
    					<ToolTip>属性名</ToolTip>
    				</Literal>
    			</Declarations>
          <Code Language="csharp" kind="method decl"><![CDATA[public $string$ $name$
    {
        set
        {
             _$name$=value;
             OnPropertyChanged("$name$");
        }
        get
        {
             return _$name$;
        }
    }
    $slected$ $end$
    private $string$ _$name$;]]></Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>
    <?xml version="1.0" encoding="utf-8"?>
    <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
      <CodeSnippet Format="1.0.0">
        <Header>
          <Title>cla</Title>
          <Author>lindexi</Author>
          <Description></Description>
          <Shortcut>cla</Shortcut>
        </Header>
        <Snippet>
    			<Declarations>
    				<Literal>
    					<ID>name</ID>
    					<Default>name</Default>
    					<ToolTip></ToolTip>
    				</Literal>
    			</Declarations>
          <Code Language="csharp" kind="method decl"><![CDATA[
    /// <summary>
    ///
    /// </summary>
    public class $name$
    {
            public $name$()
            {
    
            }
    $slected$ $end$
    }
    ]]></Code>
        </Snippet>
      </CodeSnippet>
    </CodeSnippets>

    如果需要使用Resharper的代码段,请看resharper 自定义代码片

  • 相关阅读:
    构建工具
    Ajax跨域问题
    Flex 布局教程:语法篇
    Linux常用命令
    JavaScript正则表达式
    jQuery基础(四)动画
    前端面试问题汇总(一)
    jQuery基础(三)事件
    JavaScript中的基本数据类型
    Django积木块二——邮箱
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085619.html
Copyright © 2020-2023  润新知