用CodeSmith生成可变化的代码,其实是先利用CodeSmith生成一个基类,然后自定义其它类继承于该类。当我们重新生成基类时CodeSmith不要接触继承的子类中的代码。看下面的这段模版脚本:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

<%@ CodeTemplate Language="C#" TargetLanguage="C#" Description="Base class generator." %>
<%@ Property Name="ClassName" Type="System.String" Description="Name of the class." %>
<%@ Property Name="ConstructorParameterName" Type="System.String" Description="Constructor parameter name." %>
<%@ Property Name="ConstructorParameterType" Type="System.String" Description="Data type of the constructor parameter." %>
class <%= ClassName %>
{
    <%= ConstructorParameterType %> m_<%= ConstructorParameterName %>;
 
    public <%= ClassName %>(<%= ConstructorParameterType %> <%= ConstructorParameterName %>)
    {
        m_<%= ConstructorParameterName %> = <%= ConstructorParameterName %>
    }
}

执行该模版并输入如下数据:

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

该模版生成的代码可能如下:

 1class Account
 2{
 3    int m_balance;
 4 
 5    public Account(int balance)
 6    {
 7        m_balance = balance
 8    }
 9
10}
11
12

把生成的文件保存为Account.cs文件。这时我们可以编写第二个类生成Check.cs文件代码:

1class Checking : Account
2{
3    public Checking : base(0)
4    {
5    }
6}

现在如果需要改变Account Balance的类型为浮点型,我们只需要改变ConstructorParameterType属性为float,并重新生成Account.cs文件即可而不需要直接在Account.cs中进行手工修改,并且不需要修改Check.cs文件的任何代码。

转载于:https://www.cnblogs.com/Terrylee/archive/2005/12/28/306222.html

CodeSmith实用技巧(五):利用继承生成可变化的代码相关推荐

  1. 动态照片墙 python 实现_利用python生成照片墙的示例代码

    这篇文章主要介绍了利用python生成照片墙的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 PIL(Python Im ...

  2. python制作图片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  3. python照片墙地图_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  4. python制作心形照片墙_利用python生成照片墙的示例代码

    PIL(Python Image Library)是python的第三方图像处理库,但是由于其强大的功能与众多的使用人数,几乎已经被认为是python官方图像处理库了.其官方主页为:PIL. PIL历 ...

  5. CodeSmith实用技巧(八):生成的代码输出到文件中

    在CodeSmith中,要把生成的代码文件输出到文件中,你需要在自己的模版中继承OutputFileCodeTemplate类.<?xml:namespace prefix = o ns = & ...

  6. CodeSmith实用技巧(十五):使用快捷键

    在CodeSmith中,以下几个快捷键有助于我们快速输入.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:offi ...

  7. oracle awr 执行计划,AWR(五)-利用AWR生成SQL执行计划(SQLREPORT)并进行优化 | 信春哥,系统稳,闭眼上线不回滚!...

    有些时候,我们需要分析占用资源比较大的sql的执行计划,也需要将sql的执行计划以报告的形式反馈给客户,由于AWR报告里的SQL通常都是些变量,因此以命令行方式生成sql的执行计划就很麻烦,而且也不美 ...

  8. CodeSmith实用技巧(十四):使用Progress对象

    Progress对象可以在CodeSmith生成代码时给用户显示一个进度条,当生成代码的时间很长时非常有用.如果你使用的是CodeSmith Explorer,进度条将显示在Generate按钮的左边 ...

  9. 办公实用技巧:利用迅捷画图绘制网络拓扑图操作方法介绍

    网络拓扑图,程序设计图,组织结构图等是几种比较常见的流程图主题,使用的人呢比较对并且绘制起来很方便很实用,所以很受大家青睐,所以今天爱跟风的小编就来和大家分享一下网络拓扑图的绘制方法. 绘制工具:迅捷 ...

最新文章

  1. ACM训练小结-2018年6月16日
  2. 区块链去中心化的生命之源:“DPOS(委托权益证明)共识机制”
  3. 如何设置窗口立即刷新显示
  4. 撕掉“丑”的标签,体素是如何让游戏更有趣的?
  5. ChaosConf 2018:混沌实验的演变
  6. ubuntu20.04中安装划词翻译_教你轻松玩转免安装的网页翻译插件“有道网页翻译2.0”...
  7. jdbc java_Java中使用JDBC
  8. 用java实现一个简单远程监控软件_利用java实现一个简单的远程监控程序
  9. 全网首发:FreeType加载字体图像的几个关键函数
  10. 调用微博API获取微博内容
  11. 腾讯会议共享屏幕时,设置演讲者模式仅自己可见
  12. android项目设计实验报告模板,Android实验报告模板_实验一.doc
  13. 王道考研操作系统同步与互斥(王道大题详解)
  14. 公众号排版技巧:如何让你的公众号文章排版变美观?
  15. bzoj2827千山鸟飞绝(Treap)
  16. 计算机之魂计算机软件系统教学设计,大连理工版信息技术八上《计算机之魂——计算机软件系统》教案1.doc...
  17. 006网易-表达式求值
  18. 大数据的特征(4V)
  19. 在windows终端中进行复制粘贴的方法
  20. [Magento] Overriding Core files

热门文章

  1. tesseract 样例
  2. apscheduler
  3. 9600kf功耗和温度评测_谁更受主流消费者青睐:AMD锐龙5 3500X对比英特尔酷睿i5-9600KF...
  4. 华为云优秀伙伴展示--2020-08-12
  5. 有关 vSphere 6.X 的证书及升级问题 (转)-影响等级(重要)
  6. Java设计模式学习总结(14)——结构型模式之代理模式
  7. ajax提示弹出dev,windows git pull或者push代码时弹出安全框解决办法
  8. php 背单词系统_《PHP 编程词典(珍藏版)》
  9. lucene 增量 全量 更新索引_搜索引擎:该如何设计你的倒排索引?
  10. read.table与readr::read_delim