装箱/拆箱和类型转换有什么区别?
通常,这些术语似乎可以互换使用。
装箱是指将不可空值类型转换为引用类型或将值类型转换为其实现的某个接口(例如int
to IComparable<int>
)。此外,基础值类型到可为空类型的转换也是装箱转换。 (警告:这个主题的大多数讨论都会忽略后两种类型的转换。)
例如,
int i = 5;
object o = i;
皈依者i
到类型的实例object
.
拆箱是指从实例的显式转换object
or ValueType
到不可为空值类型,将接口类型转换为不可为空值类型(例如,IComparable<int>
to int
)。此外,可空类型到基础类型的转换也是拆箱转换。 (警告:此主题的大多数讨论都会忽略后两种类型的转换。)
例如,
object o = (int)5;
int i = (int)o;
转换装箱的整数o
到类型的实例int
.
类型转换是将表达式显式转换为给定类型。因此
(type) expression
显式转换expression
到一个类型的对象type
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)