参考VCL的代码,结合笔者近两年来的一些经验,可以简单总结出一套Delphi下常用的命名规范。

  • 类型定义(type)

    • 包括class、record、枚举、procedure/function变量等所有写在type下的类型定义
    • 用大写的T开头,例如TList(class)、TPoint(record)、TAlign(枚举)、TNotifyEvent(procedure变量)
  • 常量(const)
    • 自定义的简单类型常量(如Integer、Pointer等类型)建议用C开头
    • 也有不少常量是需要根据单词意思推断的,如MaxDateTime(以Max开头,让人从意思上猜到是常量)
    • 字符串常量用S开头(因为字符串常量与简单类型常量在编译时处理方式不同,详情可参考《Delphi源代码分析》2.2.4常量)
  • 类的private成员变量、implementation下的全局变量
    • 用F开头
    • 类里绝对不要出现public成员变量,所有要公开的属性用property或者procedure、function代理出来
  • interface下的全局变量
    • interface下最好不要出现全局变量,可以替换为用interface里的function返回implementation下的全局变量值
    • 如果一定要有的话,用G开头
  • 局部变量
    • 用L开头
  • 函数(procedure或function)实参
    • 用A开头

除了这些以外,笔者有一些自己常用的Delphi编程习惯,拿出来跟大家分享,欢迎拍砖。

  • 用项目缩写做名字开头

    • 由于Delphi里没有C++中的namespace或者Java里的package这些概念,所以名字冲突问题比较严重。为了尽量避免这种问 题,可以在一个项目的专有全局类型、常量前面加上项目名称的缩写。例如对于一个叫做MyProject的项目,其下的专属类可以叫做 TMPOneClass,常量可以叫做CMPOneNumber,等等。
  • 用function代替全局变量
    • 当我们需要访问剪切板时,会用到Clipboard这个对象,不知道大家有没有注意到,这其实是一个返回TClipboard对象的function,而且还用到了设计模式的Singleton模式。
    • 由于Delphi里调用无参函数可以不写括号,所以很多时候可以把一个function当做一个变量使用,具体怎么用大家可以发散一下思维,Singleton只是其中一个例子。
  • 用Pascal命名法
    • 上面这些命名方式,总得来说是根据Pascal命名法演化而来的。
    • Pascal命名法的基本思想就是一个名字里如果包含多个单词,每个单词的首字母都要大写,例如ThisIsAnExample。
    • 不建议使用下划线命名法(如this_is_an_example),主要是因为Delphi的变量名自动补全工具不会自动过滤下划线,手动输入比较累。。。
    • 由于Delphi中变量名对大小写不敏感(如A和a其实是同一个变量,这是跟C语系的语言最大的不同),所以绝对不要尝试用字母大小写区分变量,所有变量最好都用大写字母开头。

-------------------------------------------------
本博客中凡是未标明【转】字样的文章均为原创,作者保留版权,转载请务必保留原文地址。
博客地址:http://xuxn.cnblogs.com
如有问题请联系:xuxin1123@gmail.com

转载于:https://www.cnblogs.com/edisonfeng/archive/2012/05/15/2501778.html

Delphi命名规范相关推荐

  1. delphi控件切图界面闪烁_一份最详尽全面的UI界面切图命名规范

    关于UI界面的切图命名规范,U妹觉得关键是在于团队能够有一个统一的规则,所以这里只介绍一种通用的命名规则,当然大家也可以根据自己的实际情况去制定,这里只提供一种方法与思路,仅供参考. 规范的命名方式可 ...

  2. Delphi编码规范

    以下是在之前的公司与别人共同参与制定的Delphi开发规范(5年前了,那时用的还是Delphi7,部分规则可能有些过时,但不整理了,觉得有用的人,自己整理成适合自己的开发规范吧), 目    录 一. ...

  3. html语言书写注意事项,CSS命名规范参考及书写注意事项

    CSS书写顺序 *{ /*显示属性*/ display position float clear cursor - /*盒模型*/ margin padding width height /*排版*/ ...

  4. [置顶] Objective-C ,ios,iphone开发基础:命名规范

    命名规范:http://bukkake.iteye.com/blog/695492  点击打开链接 转载于:https://www.cnblogs.com/pangblog/p/3292256.htm ...

  5. Java项目命名规范

    2019独角兽企业重金招聘Python工程师标准>>> 一.命名规范 1. 项目名全部小写 2. 包名全部小写 3. 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写 ...

  6. Java 命名规范(非常全)

    欢迎关注方志朋的博客,回复"666"获面试宝典 在本文中,将从大到小,从外到内,总结Java编程中的命名规范.文中将会涉及到日常工作中常见的命名示例,如包命名,类命名,接口命名,方 ...

  7. SQL Server中的命名规范(个人使用)

    < DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd> 表名前缀t 字段名前缀f ...

  8. Java 命名规范(非常全面)

    来源:https://www.ramostear.com/blog/2020/03/20/2vxdaqjq.html 最近发现很多初级程序员写代码时很不规范,比如方法名 类名 等,如果遇到有代码洁癖的 ...

  9. 项目的命名规范,为以后的程序开发中养成良好的行为习惯

    代码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 一.包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 1.s ...

最新文章

  1. Matlab 读取文件夹里所有的文件
  2. Oracle中的within,Oracle函数 --聚合函数中的语法within group
  3. Yii基于角色的访问控制(非Rbac)
  4. 一文理解 K8s 容器网络虚拟化
  5. java——springmvc——注册中央调度器
  6. python写一个类_python3学习笔记--002--写一个类
  7. 面试官通过21天步数考察候选人诚意,结果拒了清华生收了三本生
  8. 在服务器应用虚拟化中发现价值
  9. 计算思维与创新创业 课程 获批
  10. 电子计算机的核心部件是哪三个,电子计算机三大核心部件 是什么
  11. 电感滤波电路的工作原理
  12. oracle 12C 创建用户失败 解决方案
  13. 基于Python 实现 Spirent TestCenter 自动化
  14. Java具有哪些语言特点
  15. fiddler证书生成ca证书命令及抓包配置
  16. asp.net c# 通过消息队列处理高并发请求(以抢小米手机为例)
  17. 采集工商信息的10个经典方法
  18. 【C语言】常见关键字
  19. 人工智能将改变教育的未来:让我们变得更聪明
  20. 【python】——爬虫03 数据提取[jsonpath模块、lxml模块]

热门文章

  1. 动态修改easyui datagrid 列宽度
  2. 生活只是需要一种积极的态度
  3. java 计算两个日期之间的天数_Java日期时间API系列22-----Jdk8Month月份和DayOfWeek星期的计算。...
  4. centos 7 安装 mantisbt-2.12.0 —— 安装LAMP环境、安装mantisbt-2.12.0
  5. 基于 Storyboard 多种方式的页面跳转、参数传递
  6. setParameter不支持传统的按位置查询方式
  7. 创建型设计模式(单例模式)
  8. 转: jdbc连接数据库需要注意和出错的地方
  9. Java中的冒泡排序(减少比较次数)
  10. 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取...