转换过程中的值更改 (Visual Basic)

从值类型进行的转换在转换目标中存储源值的副本。 但是,此副本不是源值的完全相同的映像。 目标数据类型以不同的方式存储值,甚至正表示的值也可能更改,具体取决于正执行的转换类型。

扩展转换和双字节到单字节转换过程中的更改

“收缩转换”更改源值的目标副本,同时会有潜在的信息丢失。 例如,小数值在转换为整型时被四舍五入,而数值类型在转换为 Boolean 后将缩减为 True 或 False。

“扩大转换”保留源值,但可以更改值的表示形式。 从整型转换为 Decimal,或从 Char 转换为 String 时会发生扩大转换。

原始源值不因转换而更改。

引用类型转换过程中的更改

从“引用类型”进行的转换只复制指向值的指针。 而值本身既不复制也不以任何方式更改。 唯一可以更改的是存储指针的变量的数据类型。 下面的示例中,数据类型从派生类转换为它的基类,但两个变量现在都指向的对象保持不变:

' Assume class cSquare inherits from class cShape.
Dim shape As cShape
Dim square As cSquare = New cSquare
' The following statement performs a widening
' conversion from a derived class to its base class.
shape = square

请参见

任务

如何:在 Visual Basic 中将一个对象转换为其他类型

参考

数据类型摘要 (Visual Basic)

类型转换函数 (Visual Basic)

概念

扩大转换和收缩转换 (Visual Basic)

隐式转换和显式转换 (Visual Basic)

字符串和其他类型之间的转换 (Visual Basic)

数组转换 (Visual Basic)

Visual Basic 中的无类型编程

其他资源

Visual Basic 中的类型转换

结构 (Visual Basic)