问题标签 [unboxing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - PowerShell Invoke-Sqlcmd - 不返回 DataTable 或 DataSet
如果我执行以下操作,
(其中只是有效内容的占位符)
然后返回的类型如下所示:
理想情况下,我想将 $a 传递给一个接受 System.Data.DataSet (或类似)形式的 .NET 类型的函数。
有关详细信息,我正在使用 Chad Miller 的 SQLPS 模块,该模块在 Windows 7 下的 PowerShell 2 上包装了早期 SQL Server (SQL Server 2008) 的官方 MS 发行版。
我怀疑这可能与装箱和拆箱有关,但我不清楚。
有没有办法将查询结果作为 System.Data.DataSet 类型返回?
java - 取消装箱的空对象会引发意外的 NullPointerException
如果您运行以下代码,
您将获得以下堆栈跟踪,
为什么没有编译器警告或任何东西?恕我直言,拆箱是一个非常令人讨厌的微妙之处,或者我可能只是天真。
除了@Javier提供的答案之外,如果您使用的是 Eclipse,则需要执行以下操作才能启用此功能:
- 导航到Window> Preferences> Java> Compiler>Errors/Warnings
- 展开潜在的编程问题
- 将装箱和拆箱转换切换为“警告”或“错误”
- 点击“确定”
c# - 如何从对象拆箱到它包含的类型,在编译时不知道该类型?
在运行时,我得到某种类型的盒装实例。如何将其拆箱为基础类型?
c#-4.0 - 如何使用 value = null 检查拆箱可空类型的类型?
看看这个方法:
对于Nullable类型的表达式if(viewModelParams[paramKey] is T)
,如果字典中的值为 null,则无法正常工作,以澄清:
我知道可空类型( Boxing Nullable Types )的装箱和拆箱概念,但我不知道if(viewModelParams[paramKey] is T)
在这种情况下用哪个表达式替换?
java - Java 6 与 Java 7 之间自动拆箱的差异
我注意到 Java SE 6 和 Java SE 7 之间的自动拆箱行为存在差异。我想知道为什么会这样,因为我找不到这两个版本之间这种行为变化的任何文档。
这是一个简单的例子:
这与 Java SE 7 中的 javac 编译得很好。但是,如果我给编译器“-source 1.6”参数,我会在最后一行得到一个错误:
我尝试下载 Java SE 6 以使用本机版本 6 编译器进行编译(没有任何 -source 选项)。它同意并给出与上述相同的错误。
那么给了什么?从更多的实验来看,Java 6 中的拆箱似乎只能拆箱(在编译时)明显属于装箱类型的值。例如,这适用于两个版本:
因此,似乎在 Java 6 和 7 之间,取消装箱功能得到了增强,因此它可以一口气强制转换和取消装箱对象类型,而无需(在编译时)知道该值是否属于正确的装箱类型。但是,通过阅读 Java 7 发布时编写的 Java 语言规范或博客文章,我看不出这件事有什么变化,所以我想知道变化是什么,这个“特性”叫什么?
只是好奇:由于更改,可能会触发“错误”的拆箱:
这编译得很好,但在运行时会给出 ClassCastException。
对此有任何参考吗?
c# - 装箱的值类型是否与对象中的实际值类型具有相同的地址?
从MSDN unbox
确实
- 对象引用被压入堆栈。
- 对象引用从堆栈中弹出并拆箱到值类型指针。
- 值类型指针被压入堆栈。
在这种情况下,对象引用不是与值类型指针相同吗?(这两个值都是堆中值类型的地址,因为值类型是对象中的唯一成员)?
例如,一个元素数组:数组的地址与数组的第一个元素的地址相同。
haskell - 在可存储和拆箱之间转换
由于这个问题的答案,我希望能够从 Data.Vector.Unboxed.Unbox 的实例构造Foreign.Storable.Storable的实例(反之亦然)。这可能吗?
我知道的最接近的是vector-th-unbox,但这只会创建一个不可装箱的实例。
performance - 在四个元组的向量中取消装箱值
作为更复杂代码的一部分,我正在尝试调试一个性能问题。似乎append
我用来创建一个动态的、可增长的向量的(Int,Int,Int,Int)
函数导致Int
元组中的一个在被写入向量之前被装箱和拆箱。我写了一个更简单的代码来重现这个问题 - 它似乎只有在我在函数中添加矢量增长功能时才会发生append
- 下面的示例代码(除了重现问题之外它没有做太多有用的工作),然后是core
其中显示的片段装箱和拆箱的值:
GHC 生成一个append
用于gridWalk
. 该功能$wa
在核心 - 请注意装箱的 Int 参数:
gridWalk
调用时将值框起来append
:
因此,效果似乎是在插入 的向量之前将值gridWalk
装箱并取消装箱。标记不会改变行为 - 那些装箱的值只是在.append
(Int,Int,Int,Int)
append
INLINE
gridWalk
我将欣赏有关如何取消装箱此值的指示。我想append
在重构它的同时保留它的功能(即,当容量超过时处理向量增长)。
GHC
版本是7.6.1
. 矢量版本是0.10
.
c# - C# DataTable vs 一些通用集合性能
我知道DataTable
我们在插入/获取数据时正在使用装箱/拆箱。例如,如果我们有大量仅包含int
's 的数据,那么使用某种泛型不是更快,DataTable
比如说MyDataTable<int>
,这将导致避免装箱/拆箱开销吗?