所以我通过这个参数的Delphi命名方案以A开头,类变量以F开头,本地变量以M开头。该方案是否有名称?我在Delphi源码中看到了很多,我想阅读更多关于它的内容,但我不确定它叫什么。
答案 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
。但不完全。
实际上有两种类型的匈牙利表示法:
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 。属性和子程序没有前缀。