装箱/拆箱和类型转换有什么区别?

2023-12-10

装箱/拆箱和类型转换有什么区别?

通常,这些术语似乎可以互换使用。


装箱是指将不可空值类型转换为引用类型或将值类型转换为其实现的某个接口(例如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(使用前将#替换为@)

装箱/拆箱和类型转换有什么区别? 的相关文章

随机推荐

  • 有符号 64 x 32 整数除法

    假设您有一个机器指令 udive 它通过采用 32 位被除数 assume a b guaranteed not to overflow a 64bit dividend a h a l are hi lo 32bits respectiv
  • 使用 JS 更改文本选择突出显示

    对于标准浏览器 您可以使用类似的方法来更改所选文本的颜色 div txtArea selection background transparent div txtArea moz selection background transpare
  • 用委托替换 Func C#

    我们正在尝试将 NET 3 5 内置的应用程序迁移到 2 0 原因是让我们的 exe 在装有 XP 等没有 3 5 的旧机器上运行 在这样做的同时 现在一切都陷入了一个主要问题 即用老式委托替换 Func 因为 Func 在 2 0 上不可
  • 在 matplotlib 中生成双向条形图,变量位于图表中心

    我有这个数据框 variable level margins fluid margins vp 0 volfluid 1L 0 718 0 690 1 volfluid 2L 0 501 0 808 2 volfluid 5L 0 181
  • 用Filter代替过滤器

    当之后应用诸如地图 平面地图等功能时 使用 withFilter 而不是过滤器总是性能更高 为什么只支持map flatmap和foreach 也有像 forall exists 这样的预期功能 From Scala 文档 注意 之间的区别
  • 警告:非静态数据成员初始值设定项仅适用于 -std=c++11 或 -std=gnu++11? [复制]

    这个问题在这里已经有答案了 我有这个代码 class Move public Move name type num 18 power 0 accuracy 0 type Move string a int b int c int d nam
  • UINavigationController 推送转换期间帧速率低

    我有一个UINavigationController 然后从根视图控制器推送到下一个视图控制器 第二个视图控制器相当 重 因为它有大量的初始化和子视图 我的问题是 过渡动画的表现很糟糕 基本上 动画的帧速率非常低 我从 推 动画中总共得到了
  • 如何使用 JDBC 在 Spring 中创建动态连接(数据源)

    我有一个 Spring 应用程序 我需要获取 Oracle 表的服务器详细信息 并根据某些服务器 ID 在需要时创建动态连接 我怎样才能做到这一点 看看春天的AbstractRoutingDataSource javadoc api 这可以
  • 如何将 json 文件加载到 Angularjs 中以进行 ng-repeat

    我有一个简单的 json 文件 其中包含艺术家姓名列表 例如 Vincent van Gogh Leonardo da Vinci Pablo Picasso 我不知道如何将此外部 json 文件加载到 angularjs 数组中并在其上使
  • 用什么工具画动画网络图

    我想获得复杂图上随机游走的概率分布的动画 我目前使用 Python 和NetworkX用于图形的操作和步行动态的评估 我的目标是制作一个动画 例如 GIF 文件 其中图形的每个节点的大小与其度数 或其他拓扑属性 成正比 颜色与标量属性 概率
  • ObjectListView 强制转换异常(用于命中测试)

    我正在使用 Grammarian 的 ObjectListView 我将旧的列表视图更改为该视图 但我所做的只是填写项目 但是当应用程序启动并且我的鼠标位于列表视图上时 它立即抛出异常 System InvalidCastException
  • 在 SearchView 中放置进度微调器?

    我在我的 Activity 中使用 SearchView 当用户键入时 我正在向服务器执行搜索请求 我想表明一些活动正在发生 是否可以在 SearchView 中显示进度微调器 否则 人们如何处理这个问题 我们是否创建一个自定义操作栏父布局
  • python 右对齐

    我如何证明这段代码的输出是合理的 N int input case print case for i in range N case print case 您可以使用format with gt 右对齐 N 10 for i in rang
  • 非默认版本的 appspot.com 子域上的 SSL

    我想在我的 GAE 应用程序的非默认版本上使用 SSL 对于正常的https my app appspot com我知道我什么都不用做 不过我有另一个版本 该版本位于https v2 my app appspot comSSL 不起作用 它
  • 以正确的 1:1 比例在圆形边框中制作 Font Awesome 图标

    在某些情况下 如果图标的比例不是 1 1 则边框不再是圆形 这是一个例子 我目前正在使用 HTML socials a href i class fa fa facebook i a href i class fa fa twitter i
  • Javascript - 如何将原始对象传递给回调函数

    我遇到的问题专门针对 D3 js 但我之前也遇到过类似的问题 并且最终总是使用 hack 来解决它 我有一个包含对象数组的类 有一个功能可以从 CSV 文件添加新对象 使用d3 csv 该函数采用一个文件名和一个带有一个参数的回调函数 cs
  • 二叉树 - 取消引用指针[关闭]

    Closed 这个问题是无关 目前不接受答案 我只是想编写一个简单的二叉搜索树程序 用户可以在其中插入节点并以中序 前序或后序模式查看树中的所有节点 我的代码是 include
  • MySQL FIND_IN_SET 或等效项可以使用索引吗?

    如果我比较 explain select from Foo where find in set id 2 3 id select type table type possible keys key key len ref rows Extr
  • 使用 C++ 的 CPU ID - windows

    我想使用 C 获取我的计算机 Windows 的 CPU Id I used 这段代码为拿到它 为实现它 它输出类似的信息 For InfoType 0 CPUInfo 0 0x5 CPUInfo 1 0x756e6547 CPUInfo
  • 装箱/拆箱和类型转换有什么区别?

    装箱 拆箱和类型转换有什么区别 通常 这些术语似乎可以互换使用 装箱是指将不可空值类型转换为引用类型或将值类型转换为其实现的某个接口 例如int to IComparable