0

我是 VB 的新手。我正在阅读一些 VB6 代码,我遇到了像这样的声明语句

  PQR_SSN(8) As Byte // this probably refers to social security number
  TR_DATA(7) As TransactionDetail

在另一个文件中,定义了 TransactionDetial

  Public Type TransactionDetail
  A(0) As Byte  
  B(0) As Byte
  Comment(40) As Byte
  //... etc
  //...
  End Type

TR_DATA(7) 是否意味着它是一个“数组”,可以存储8个TransactionDetail实例?

另外,请考虑评论(40)。我可以像这样访问评论的各个字节吗?

  Comment(3) 

另外,假设我没有将所有 41 个字节分配给 Comment。那么剩下的字节会包含垃圾值吗?

请帮忙。谢谢。

4

2 回答 2

1

是的,TR_DATA(7) 是一个包含 8 个 TransactionDetail 类型元素的数组。

是的,可以通过您展示的单个元素访问 Comments 数组。

未分配的元素可能包含垃圾值——我不相信它们——但我不记得 VB 是否有助于预初始化变量。我希望它会对用户有所帮助,并且它将数字变量初始化为 0,将固定长度的字符串初始化为全零,并将对象初始化为 Empty。

找到这个 web 链接,它提供了一些关于 VB6 中数组的有用指导。

也刚刚发现:VB6 Variable Scope;其中说:

与许多其他语言不同,VB 不允许您初始化变量。这必须使用可执行语句来完成。但是,每个变量都有一个默认的初始化值。数值变量类型初始化为零,字符串初始化为 "",布尔值初始化为 False,等等。

于 2012-04-11T20:55:36.443 回答
0

@Nick:是的,VB 确实如您所想。

@CodeBlue:您的最后一个问题表明您可能想要调查动态数组。如果是这样,我建议您特别调查 Redim 和 Preserve 声明。

于 2012-04-13T13:58:43.783 回答