VS自定义模板-以自定义类模板为样例
前言
在实际的工作过程中部分公司会要求开发人员在开发过程中需遵守一些开发规范,开发规范中主要包括文件的注释规范,项目、文件、变量的命名规范(例如驼峰规范)等等。例如我们代码规范中就有一项新增文件的文件注释,注释内容包括公司版权声明、文件名称、文件功能描述、创建时间、创建人等。注释内容较多,每次复制粘贴起来比较麻烦和耗时间。于是考虑能不能固化这部分内容,每次只修改小部分差异化内容。自然就想到了模板这个概念,果然微软在设计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自定义模板-以自定义类模板为样例的更多相关文章
- 【C++】模板简述(三):类模板
上文简述了C++模板中的函数模板的格式.实例.形参.重载.特化及参数推演,本文主要介绍类模板. 一.类模板格式 类模板也是C++中模板的一种,其格式如下: template<class 形参名1 ...
- C++ 类模板一(类模板的定义)
//类模版语法 #include<iostream> using namespace std; /* 类模板和函数模板深入理解 1.编译器并不是把函数模板处理成能处理任何类型的函数 2.编 ...
- C++入门经典-例9.3-类模板,简单类模板
1:使用template关键字不但可以定义函数模板,而且可以定义类模板.类模板代表一族类,它是用来描述通用数据类型或处理方法的机制,它使类中的一些数据成员和成员函数的参数或返回值可以取任意数据类型.类 ...
- C++练习 | 单向链表类模板(包含类模板中静态变量初始化格式)
#include <iostream> #include <string> using namespace std; template <class T> clas ...
- UML类图图示样例
下图来自<大话设计模式>一书:
- c++中的类(class)-----笔记(类模板)
1,一个模板类至少具有一个类参数,类参数是个符号以表示将要被某个确定数据类型代替的类型. #include<iostream> #include<string> using n ...
- C++类模板的三种特化
说起C++的模板及模板特化, 相信很多人都很熟悉 ,但是说到模板特化的几种类型,相信了解的人就不是很多.我这里归纳了针对一个模板参数的类模板特化的几种类型, 一是特化为绝对类型: 二是特化为引用,指针 ...
- C++——模板、数组类
1.函数模板:可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计. 声明方法:template<typename 标识符> 函数声明 求绝对值的模板 #in ...
- C++学习笔记:09 函数模板与类模板
课程<C++语言程序设计进阶>清华大学 郑莉老师) 引入 考虑一个求绝对值函数myabs,对于int,double,float等数据类型需要重载多次,编写多个函数体.函数体逻辑代码完全一致 ...
- C++进阶-1-模板基础(函数模板、类模板)
C++进阶 模板 1.1 函数模板 1 #include<iostream> 2 using namespace std; 3 4 // 模板 5 6 // 模板的简单实例 7 // 要求 ...
随机推荐
- 将Ubuntu下网卡名称enss改为eth0
将Ubuntu下网卡名称enss改为eth0 sudo nano /etc/default/grub 找到GRUB_CMDLINE_LINUX=""改为GRUB_CMDLINE ...
- redis5.0 Cluster集群搭建
安装redis sudo apt update sudo apt install build-essential tcl cd ~ mkdir document/ cd document/ curl ...
- Gloang Swagger
功能 自动化生产接口文档 安装 # 安装swaggo get -u github.com/swaggo/swag/cmd/swag # 安装 gin-swagger go get -u github. ...
- 毕业论文系列之基于WiFi的智能农业大棚管控系统设计代码
#include <dht11.h>//dht11库 #include <MsTimer2.h> //定时器库的 头文件 #include < ...
- openstack启动云主机的流程
看一下openstack启动云主机的流程图 通过上图分析可以知道: 1. 用户使用Dashboard或者CLI 把认证信息通过REST请求发送给keystone进行认证.2. Keystone校验用户 ...
- 实验19:Frame-Relay
实验16-1. 帧中继多点子接口 Ø 实验目的通过本实验,读者可以掌握如下技能:(1) 帧中继的基本配置(2) 帧中继的静态映射(3) 多点子接口的应用Ø 实验拓扑 实验步骤n 步骤1 ...
- FFMPEG学习----遍历所支持的解码器
下面简单介绍一下遍历ffmpeg中的解码器信息的方法(这些解码器以一个链表的形式存储): 1.注册所有编解码器:av_register_all(); 2.声明一个AVCodec类型的指针,比如说AVC ...
- 再谈typedef(重点为函数指针)
有种很方便的写法. typedef int *p: p pointer: 这时直接把pointer带入原式中,取代p然后去掉typedef,得到的结果就是int * pointer: 哈哈,这样直接替 ...
- OpenGL学习网址2
http://www.opengpu.org/forum.php?mod=viewthread&tid=7525
- uml图六种箭头的含义
转:https://blog.csdn.net/wglla/article/details/52225571 在看一些技术博客的时候,经常会见到博客里画上很多uml图.因为经常会被这几种表达关系的箭头 ...