我想弄清楚一些代码中有以下内容:
For I& = 1 To...
我不熟悉&变量之后。这代表什么?
在进一步research之后,它看起来像I&被定义为LONG类型。现在我的问题是为什么他们会这样做?它是矫枉过正还是遗留代码?
答案 0 :(得分:12)
传统的BASIC语言有几种声明变量的方法。您可以将数据类型后缀($,%,&,!或#)用于变量名称
x$ = "This is a string" ' $ defines a string
y% = 10 ' % defines an integer
y& = 150 ' & defines a long integer
y! = 3.14 ' ! defines a single
y# = 12.24 ' # defines a double
答案 1 :(得分:5)
旧。 Old-school(pre -.NET)Visual Basic使用变量名后缀代替(可选)变量类型。
答案 2 :(得分:2)
你是对的 - 把&符号&在数字或变量之后意味着它是长32位类型。
所以答案是,循环需要多少次迭代 - 是否有可能超过16位整数?
在i之后没有数据类型标识符,暗示它是本机Integer(默认值)。因此,这个i被表示为一个整数,它使它成为一个16位i。
所以,我说这是原始开发人员习惯用&明确说明变量类型,是否真的需要它取决于For..Next循环必须支持的迭代次数在这种情况下。
答案 3 :(得分:2)
很可能是旧代码从QBasic移植到VB6等等,或者只是个别程序员从那个时代开始的坏习惯。对于VB6程序员来说,它的含义应该是显而易见的,因为它在很多情况下也可以用于数字文字:
MsgBox &HFFFF
MsgBox &HFFFF&
这些显示不同的值,因为它们是不同的值。
是的,它意味着很长,但它通常反映了某些人在创建时未能将IDE选项设置为在新模块中自动包含Option Explicit。
答案 4 :(得分:0)
使用符号表示法(整数 - %,长 - &,单 - !,双 - #,字符串 - $)是变量声明和使用的绝佳方法。它的用法与“结构化编程”一致,是匈牙利符号的一个很好的替代品。
使用匈牙利表示法,可以将字符串文件名定义为“strFileName”,其中变量名称前面是变量类型的小写缩写。这与另一个良好的编程习惯相反,即使所有全局变量以大写首字母开头,所有局部变量以小写字母开头。这有助于您的代码的读者立即知道变量的范围。 IE浏览器。 firstName $是本地字符串变量; LastName $是全局字符串变量。
与所有编程一样,遵循惯例是很好的,无论您定义自己的约定还是其他人的约定或行业约定。没有惯例是一个非常糟糕的编程实践。使用符号表示法是一种命名约定。