转换过程中的值更改

更新:2007 年 11 月

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

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

“收缩转换”更改源值的目标副本,同时会有潜在的信息丢失。例如,小数值在转换为整型时被四舍五入,而数值类型在转换为 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 中的类型转换

结构:您自己的数据类型