问题标签 [boxing]

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.

0 投票
3 回答
906 浏览

c# - 避免在 DbParameter.Value 中装箱?

我正在使用 ADO.NET 与一些数据库进行通信,并在将 DbParameter.Value 属性设置为值类型时寻找一种避免装箱的方法。

有没有办法避免在 DbParameter.Value 中装箱?

谢谢。

0 投票
12 回答
151108 浏览

c# - 为什么我们需要在 C# 中装箱和拆箱?

为什么我们需要在 C# 中装箱和拆箱?

我知道什么是装箱和拆箱,但我无法理解它的真正用途。为什么以及在哪里使用它?

0 投票
4 回答
1750 浏览

cocoa - 将 int32_t 存储在 NSDictionary 中

如何将类型变量int32_t(例如 ABPropertyID)存储在NSDictionary?

[NSNumber numberWithInt:...]似乎不起作用。

谢谢


从评论:

打印:0(空)有什么想法吗?

0 投票
3 回答
153 浏览

.net - 课程是盒装的吗?。网

我想知道,班级会被装箱吗?我一直假设每个班级都有一个虚拟表,可以用来识别班级,那么它需要装箱吗?

0 投票
3 回答
1486 浏览

.net - 拳击会在 .NET 中产生垃圾吗?

我想知道在对象中对值类型进行装箱是否是一种特殊情况,或者在删除对它的任何引用后,.NET 构造的“框”是否会变成垃圾(GC 必须收集)。

例如, StringBuilder.AppendFormat() 有这些重载:

为具有 3 个或更少参数的调用提供这些额外的重载可能表明装箱确实是一种特殊情况(或者从性能的角度来看,它可以避免数组构造)。

从理论上讲,使用普通的旧引用计数,可能使用可重用框池将是一个有效的实现,因为不能有从一个框到另一个框的引用,只有从 .NET 对象到一个框。

0 投票
2 回答
252 浏览

java - Java:是否有一些准标准的 API,它们执行 int[] <-> Integer[] 和类似的操作?

我需要在primitivetype[]boxedtype[](两个方向)之间进行大量转换。
如:Integer[] <-> int[], Double[] <-> double[], ...

在我自己编写此类实用方法之前,我想知道是否有一些提供此类功能的准标准 API。

Java 有8种原始类型,所以这将是一项(复制粘贴)工作......

谢谢你。

0 投票
5 回答
1014 浏览

c# - 什么表现更差:反射还是拳击?

我正在创建自己的 DI 框架,将创建委托工厂作为学习练习。我构建类型化委托的方法是使用表达式创建一个函数,该函数参考我的容器和任何构造函数参数调用静态方法。

这引发了一个关于值类型的有趣问题。哪个是性能最高的:

a)使用反射选择具有正确数量参数的静态泛型方法,然后使用 MakeGenericMethod 删除泛型

b) 选择老式的参数 Object[] 并接受拳击的打击?

0 投票
3 回答
2778 浏览

vb.net - 将 .GetValueOrDefault(0) 和 If(variable, 0) 与可空类型一起使用有什么区别吗?

以下两种计算 c 的方法之间有什么区别……特别是装箱/拆箱问题?

0 投票
2 回答
706 浏览

vb.net - VB.NET "If" 运算符是否会导致装箱?

我们这些在 VB/VB.NET 中工作过的人都见过类似这种可憎的代码:

我说“可憎”有三个简单的原因:

  1. IIf是一个函数,其所有参数都被评估;因此,如果obj上述调用中没有任何内容,NullReferenceException则将抛出 a。对于习惯于在 C# 等语言中使用短路三元运算符的人来说,这是出乎意料的行为。
  2. 因为 IIf是一个函数,所以它会产生函数调用的开销。同样,虽然这没什么大不了的,但对于那些期望它表现为语言固有的三元运算的人来说,它只是感觉不对。
  3. IIf是非泛型的,因此接受 type 的参数Object,这意味着以下调用框(我相信)总共三个整数:

    ' boxes 2nd and 3rd arguments as well as return value '
    Dim value As Integer = IIf(condition, 1, -1)

现在,在一些更新的 VB.NET 版本中(我不确定数字是多少),If引入了运算符,它的工作方式与函数完全相同,IIf但(据我了解)没有相同的缺点。也就是说,它确实提供了短路,它一种内在的 VB 操作。但是,我不确定最后一部分。MSDN 文档似乎没有表明是否将If其参数框起来。有人知道吗?

0 投票
1 回答
182 浏览

c# - WPF 的 Control 属性是否存在性能劣势?

我正在学习 WPF,看起来像 Content 这样的一些属性是 Object 类型的。当你有一个包含 1000 多个控件的非常复杂的 UI 时,这会是装箱等问题吗?

我看到这提供了很大的力量(让 Content 可以接受任何东西),但我只是想我应该询问人们对此的看法。