转换过程中的值更改
更新: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 中将一个对象转换为其他类型