德尔福4中的下划线是什么意思

时间:2009-09-25 11:57:37

标签: delphi delphi-4

我在代码中遇到以下内容。

_name1
_name2
smeEGiGross:  

一般来说,_name1下划线在Delphi 4中意味着什么?

5 个答案:

答案 0 :(得分:5)

我认为通过下划线开始变量名称只是一种常见做法。

Delphi中变量(和组件)名称的规则:

  • 名称可以是任意长度,但Delphi仅使用前255个字符。
  • 第一个字符必须是字母或下划线而不是数字。
  • 您不能使用任何特殊字符,例如问号(?),但您可以  使用下划线(_)。
  • 变量名称中不允许使用空格区域。
  • 保留字(例如begin,end,if,program)不能用作变量。
  • Delphi不区分大小写 - 大写字母是否正常无关紧要  使用与否。只需确保使用变量或组件的方式即可  贯穿整个计划。

答案 1 :(得分:5)

这是一种通过其名称帮助确定变量范围的约定,如私有类成员。原作者也可能使用C ++。

在Delphi中,我更喜欢使用“F”为前缀添加前缀,使用“a”(参数)为方法参数添加前缀,为“l”添加局部变量。

更新

您可能会看到下划线的另一个地方是使用WSDLImp或TLBImp生成的代码中的某些标识符,以避免与现有Delphi标识符混淆。例如,除非您另行指定,否则“名称”将重命名(无双关语)到“名称_”。

答案 2 :(得分:4)

添加凤凰答案:

* You can use reserved words as identifiers, but you must add a & sign: &then, 
  &unit.
I only use this if another name ís not apropriate.

我将领先的下划线与C / C ++联系起来,而不是Delphi。 C语法更加面向字符(如{,},||和&&),因此下划线非常适合。虽然Delphi / Pascal语法更加面向文本(开始,结束,或者),所以下划线看起来有点奇怪,因为你不希望它们存在。

答案 3 :(得分:4)

它经常用于范围。

我在开头用_表示我的所有私有变量,这在C#/ C ++中更常见。

这是为了便于阅读,并不一定意味着什么。

答案 4 :(得分:2)

我不能说你想到的代码的作者在想什么,但是下划线前缀与COM相关的公认公约相当公认。

具有下划线前缀的COM接口中的成员默认由接口浏览器/检查器隐藏(例如VB的库浏览器等)。这在成员根据需要发布但不打算使用时使用直接

IUnknown 界面的 _AddRef _Release 成员可能是最明显的例子。

我自己采用了这个约定,所以例如,如果我声明一个通过访问器函数通过单元接口公开的单元实现变量,我将使用下划线前缀命名该变量。在这种示例中,它并不是绝对必要的,但它充当了我自己的文档(以及其他任何阅读我的代码的人都知道该约定,这在上下文中是相当明显的。)

另一个例子是当我有一个函数指针,它可以根据运行时条件引用不同的函数,所以指针可能引用的实际函数不是要直接调用,而是打算通过函数指针调用

因此,对我自己而言,我将其用作警告/提醒....请谨慎使用,不要直接引用此符号。