数据类型更改(针对 Visual Basic 6.0 用户)
更新:2007 年 11 月
Visual Basic 2008 更新了数据类型以提供与其他编程语言和公共语言运行库的互操作性。这些更改会影响数据类型的声明、使用和转换。
Visual Basic 6.0
在 Visual Basic 6.0 中,您使用 Deftype 语句 -- DefBool、DefByte、DefCur、DefDate、DefDbl、DefDec、DefInt、DefLng、DefObj、DefSng、DefStr 和 DefVar -- 设置变量的默认类型。
可将 Currency 数据类型用于有关货币的计算和固定点计算。
Date 存储在采用 8 个字节的 Double 格式中。
如果两个包含整数的 Variant 变量相乘,则溢出条件导致结果数据类型更改为 Double。
可以使用 LSet 和 RSet 语句将一个用户定义类型的变量复制到另一个用户定义类型的变量。
Visual Basic 2008
在 Visual Basic 2008 中不支持 Deftype 语句。也不支持 Currency 数据类型。对于所有货币变量和计算,则改用新的 Decimal 数据类型,该类型可处理小数点两边的更多位数。公共语言运行库也直接支持 Decimal。
在 Visual Basic 2008 中,Date 数据类型使用公共语言运行库 DateTime 数据类型,该数据类型为 8 字节的整数值。由于存在这些不同表示,所以在 Date 和 Double 数据类型之间没有隐式转换。若要在 Double 和 Date 的 Visual Basic 6.0 表示形式间转换,请使用 System 命令空间中 DateTime 结构的 ToOADate 和 FromOADate 方法。
如果两个包含整数的 Object 变量相乘导致溢出,则结果会更改为 64 位的 Long 数据类型。
不能使用 LSet 和 RSet 将一个数据类型分配给另一个数据类型。这样做会导致非类型安全的操作(对于结构尤其如此),因而会产生无法验证的代码。