我在代码中遇到以下内容。
_name1
_name2
smeEGiGross:
一般来说,_name1
下划线在Delphi 4中意味着什么?
答案 0 :(得分:5)
我认为通过下划线开始变量名称只是一种常见做法。
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 成员可能是最明显的例子。
我自己采用了这个约定,所以例如,如果我声明一个通过访问器函数通过单元接口公开的单元实现变量,我将使用下划线前缀命名该变量。在这种示例中,它并不是绝对必要的,但它充当了我自己的文档(以及其他任何阅读我的代码的人都知道该约定,这在上下文中是相当明显的。)
另一个例子是当我有一个函数指针,它可以根据运行时条件引用不同的函数,所以指针可能引用的实际函数不是要直接调用,而是打算通过函数指针调用
因此,对我自己而言,我将其用作警告/提醒....请谨慎使用,不要直接引用此符号。