前言

在实际的工作过程中部分公司会要求开发人员在开发过程中需遵守一些开发规范,开发规范中主要包括文件的注释规范,项目、文件、变量的命名规范(例如驼峰规范)等等。例如我们代码规范中就有一项新增文件的文件注释,注释内容包括公司版权声明、文件名称、文件功能描述、创建时间、创建人等。注释内容较多,每次复制粘贴起来比较麻烦和耗时间。于是考虑能不能固化这部分内容,每次只修改小部分差异化内容。自然就想到了模板这个概念,果然微软在设计VS编译器时就考虑到这个问题,下面直接上具体操作和实际效果。

上手操作

  • 定位软件安装位置


    建议使用右键软件快捷方式,打开文件所在位置的形式。例如我这里是
  • 定位模板存储位置


    模板存储位置可以参考我的,不用版本VS相对路径是一样的,在2008和2013两个版本中比较过。在“Common7\IDE\ItemTemplatesCache\CSharp\Code\2052”
  • 找到具体需要修改的模板


    Class文件夹下面的就是类文件模板
  • 修改模板内容

    /*----------------------------------------------------------------
    // Copyright © 2019 FreeLoopPowter.All rights reserved.
    // 文件名称: 门诊医嘱模板选择控件
    // 文件功能描述: 门诊医嘱模板选择控件
    // 设计要求: 实现门诊处方模板, 查找选择功能
    //
    // CLR版本: $clrversion$
    // 类 名 称: $itemname$
    // 机器名称: $machinename$
    // 命名空间: $rootnamespace$
    // 文 件 名: $safeitemname$
    // 创建者: FreeLoopPowter
    // 创建日期: $time$
    // 修改记录:
    // log1: 修改者:
    // 修改日期:
    // 修改内容:
    // log2: 修改者:
    // 修改日期:
    // 修改内容:
    //----------------------------------------------------------------*/
    using System;
    using System.Collections.Generic;
    $if$ ($targetframeworkversion$ == 3.5)using System.Linq;
    $endif$using System.Text; namespace $rootnamespace$
    {
    /// <summary>
    /// 对象名称: 门诊医嘱模板选择控件
    /// 对象内容: 门诊医嘱模板选择控件
    /// 创建者: FreeLoopPowter
    /// 创建日期: $time$
    /// 修改者:
    /// 修改日期:
    /// </summary>
    public class $safeitemrootname$
    {
    }
    }

    这是我根据公司代码规范的内容然后增加CLR版本、命名空间、机器名称等自定义内容修改后的模板内容。各人可根据实际需求进行修改,这里附上一张模板参数列表的照片。

    ​模板参数列表
  • 重启软件

  • 打开软件


    在项目中新增类文件即可看到效果,如下所示:

    /*----------------------------------------------------------------
    // Copyright © 2019 FreeLoopPowter.All rights reserved.
    // 文件名称: 类文件模板演示类
    // 文件功能描述: 类文件模板演示类
    // 设计要求: 演示类文件模板效果
    //
    // CLR版本: 4.0.30319.42000
    // 类 名 称: Class1
    // 机器名称: DESKTOP-70OTVC2
    // 命名空间: BarCodeAndQRCode
    // 文 件 名: Class1
    // 创建者: FreeLoopPowter
    // 创建日期: 2019/7/7 11:55:44
    // 修改记录:
    // log1: 修改者:
    // 修改日期:
    // 修改内容:
    // log2: 修改者:
    // 修改日期:
    // 修改内容:
    //----------------------------------------------------------------*/
    using System;
    using System.Collections.Generic;
    using System.Text; namespace BarCodeAndQRCode
    {
    /// <summary>
    /// 对象名称: 类文件模板演示类
    /// 对象内容: 类文件模板演示类
    /// 创建者: FreeLoopPowter
    /// 创建日期: 2019/7/7 11:55:44
    /// 修改者:
    /// 修改日期:
    /// </summary>
    public class Class1
    {
    }
    }

    勤于实践、乐于记录,热爱分享。

VS自定义模板-以自定义类模板为样例的更多相关文章

  1. 【C++】模板简述(三):类模板

    上文简述了C++模板中的函数模板的格式.实例.形参.重载.特化及参数推演,本文主要介绍类模板. 一.类模板格式 类模板也是C++中模板的一种,其格式如下: template<class 形参名1 ...

  2. C++ 类模板一(类模板的定义)

    //类模版语法 #include<iostream> using namespace std; /* 类模板和函数模板深入理解 1.编译器并不是把函数模板处理成能处理任何类型的函数 2.编 ...

  3. C++入门经典-例9.3-类模板,简单类模板

    1:使用template关键字不但可以定义函数模板,而且可以定义类模板.类模板代表一族类,它是用来描述通用数据类型或处理方法的机制,它使类中的一些数据成员和成员函数的参数或返回值可以取任意数据类型.类 ...

  4. C++练习 | 单向链表类模板(包含类模板中静态变量初始化格式)

    #include <iostream> #include <string> using namespace std; template <class T> clas ...

  5. UML类图图示样例

    下图来自<大话设计模式>一书:

  6. c++中的类(class)-----笔记(类模板)

    1,一个模板类至少具有一个类参数,类参数是个符号以表示将要被某个确定数据类型代替的类型. #include<iostream> #include<string> using n ...

  7. C++类模板的三种特化

    说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多.我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型: 二是特化为引用,指针 ...

  8. C++——模板、数组类

    1.函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 声明方法:template<typename 标识符> 函数声明 求绝对值的模板 #in ...

  9. C++学习笔记:09 函数模板与类模板

    课程<C++语言程序设计进阶>清华大学 郑莉老师) 引入 考虑一个求绝对值函数myabs,对于int,double,float等数据类型需要重载多次,编写多个函数体.函数体逻辑代码完全一致 ...

  10. C++进阶-1-模板基础(函数模板、类模板)

    C++进阶 模板 1.1 函数模板 1 #include<iostream> 2 using namespace std; 3 4 // 模板 5 6 // 模板的简单实例 7 // 要求 ...

随机推荐

  1. C#的JSON数据处理

    假设一个Model: public class Person { public int Age { get; set; } public string Name { get; set; } } JSO ...

  2. redis端口6379的由来

    有一个技巧,Redis端口号6379,是手机键盘上的MERZ.

  3. HDU-6185-Covering(推递推式+矩阵快速幂)

    Covering Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  4. IO博客专栏

    1. IO概览 2. 字符流与字节流的区别

  5. Struts(六)

    JSON(JavaScript Object Notation)    1.一种轻量级的数据交换格式    2.通常用于在客户端和服务器之间传递数据    3.jQuery的所有参数都是以JSON格式 ...

  6. 使用nginx搭建一个可用的静态资源web服务器

    新建dlib目录,dlib里面放着很多index.html文件 修改conf文件 配置location,/所有的请求,这里一般使用alias,这样url后面的路径和dlib/下面的路径是一一对应的,如 ...

  7. 90万条数据玩转RFM用户分析模型

    RFM,是一种经典的用户分类.价值分析模型: R,Rencency,即每个客户有多少天没回购了,可以理解为最近一次购买到现在隔了多少天. F,Frequency,是每个客户购买了多少次. M,Mone ...

  8. ncbi-blast 本地安装

    详见:http://blog.shenwei.me/local-blast-installation/ Linux系统中NCBI BLAST+本地化教程 本文面向初学者(最好还是懂得基本的linux使 ...

  9. 静态代码块&非静态代码块&构造函数

    总结:静态代码块总是最先执行.非静态代码块跟非静态方法一样,跟对象有关.只不过非静态代码块在构造函数之前执行.父类非静态代码块.构造函数执行完毕后(相当于父类对象初始化完成), 才开始执行子类的非静态 ...

  10. python代码迷之错误(ModuleNotFoundError: No module named 'caffe.proto')

    1.pandas.read_csv book[n]下的print(n) 总图片数是少一张的,print(n)发现也是少了一个序号 仔细查找后发现缺少99号,即最后一张图片没有被读取.print(m)时 ...