在VB6中,声明的字段是否具有默认值?

Cod*_*lue 9 vb6

我正在阅读一些旧的VB6代码,并且在许多形式中,我遇到了声明语句,如 -

 PEC_NUM_ENT(1) As Byte
 EC_MORE_RW_EXIST(0) As Byte
 EC_CODE_IND(0) As Byte
 EC_DATA(7) As PRXDetail 
Run Code Online (Sandbox Code Playgroud)

我的问题是,这些字段是否具有默认值?如果是这样,价值观是什么?谢谢.

mdo*_*yle 17

是.数字和日期类型默认为0,字符串为空字符串(即""),布尔值为False,变量为EMPTY.

  • Empty与null不同.我记得,变量基本上是一个无类型的类型,直到它被使用 - 所以如果它首先用作字符串,那么Empty就是""等等.我有点错过EC_DATA,这是一个PRXDetail数组 - 显然是用户定义的类型.我不确定,但怀疑UDT中的每个字段都有默认值.我不确定VB6如何处理UDT,但我怀疑数组的每个元素都是一个内存位置.这些值将通过EC_DATA(0).FieldName等获得. (2认同)

Mar*_*rkJ 7

VB6文档

初始化变量时,数值变量初始化为0,可变长度字符串初始化为零长度字符串(""),固定长度字符串用零填充.变量变量初始化为Empty.用户定义的类型变量的每个元素都被初始化,就好像它是一个单独的变量一样.

PRXDETAIL看起来可能是用户定义的类型