我的变量命名约定是否有名称?

时间:2009-07-16 21:55:53

标签: delphi naming-conventions

所以我通过这个参数的Delphi命名方案以A开头,类变量以F开头,本地变量以M开头。该方案是否有名称?我在Delphi源码中看到了很多,我想阅读更多关于它的内容,但我不确定它叫什么。

5 个答案:

答案 0 :(得分:18)

此编码样式在Object Pascal Style Guide中专门称为 not 为匈牙利表示法(有一个例外,enumerated types。)

您所谈论的具体编码约定没有这样的名称,据我所知,只是您编写符合CodeGear(旧Borland)编码风格指南的代码。该指南似乎没有给这个风格起一个名字。

你在Delphi源代码中看到很多的原因是因为本指南基于Delphi团队开发的编码风格!

本文档非常值得一读 - 不仅仅是针对代码指南,也是出于对其提及的其他内容的兴趣。

答案 1 :(得分:10)

您的架构可以被视为某种形式的Hungarian notations(HN)。通常HN用于表示变量的type,但正如维基百科指出的那样,

  

符号有时会扩展   C ++包含a的scope   变量,由下划线分隔。   通常也使用此扩展名   没有匈牙利人   类型规范:[..]

答案 2 :(得分:10)

我想说你的命名惯例并不符合匈牙利表示法,但它更接近查尔斯西蒙尼发明的原始匈牙利表示法,后来被称为Apps Hungarian。但不完全。

实际上有两种类型的匈牙利表示法:

  • Apps匈牙利语 - 我们的想法是根据他们存储的内容的语义信息来装饰标识符名称,所以基本上是变量的目的
    rwElement - variable represents a row ("rw")
    colElement - variable represents a columns ("col")
  • 匈牙利语系统 - 前缀对变量的实际数据类型进行编码。
    szName - variable is a zero-terminated string ("sz")
    lAccount - variable is a long integer ("l")

因此,虽然命名约定在某种程度上代表某种目的,但它并不是Apps Hungarian所指的真正目的。

答案 3 :(得分:7)

一般来说,这听起来像匈牙利表示法 - 但是没有指定A,F或M惯例,具体而言,只是将类型信息预先添加到名称中。

答案 4 :(得分:7)

你的命名约定的一般类别被称为匈牙利符号(可能比通常更宽泛的意义,该名称有一个描述变量的前缀),但不,你的约定没有没有更具体的名字。

我以前从未见过你特别选择的前缀。我最接近的是我认为的 Indy惯例,它使用 A 作为参数, F 作为字段,全局的G ,本地的 L ,当然接口的常用 I 和记录和类的 T 。属性和子程序没有前缀。