问题标签 [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.
java - 是否有内置的 Java 方法来装箱数组?
有没有可以用来代替这种自定义方法的标准方法?
c# - 扩展 System.Object 时如何避免装箱/拆箱?
我正在研究一种仅适用于引用类型的扩展方法。但是,我认为,它目前正在对值进行装箱和拆箱。我怎样才能避免这种情况?
示例用法:
在某些方法中:
c# - CLR 如何知道装箱对象的类型?
当一个值类型被装箱时,它被放置在一个无类型的引用对象中。那么是什么导致了无效的强制转换异常呢?
c# - 关于拳击 / c# 的基本问题
添加后是否可以更改存储在其中的值bar
?
我试过“装箱”字符串foo
,但它不起作用。
c# - C# 类型转换
我有两个对象。对象 A 和对象 B。
对象 A 是从多个 XSD 文件生成的类的实例。使用 xsd.exe /c 并编译它们。现在我有了我的新对象。
我还有一个 Web 服务,它返回与对象 A 非常相似的东西。所以现在我有一些类似的东西:
我想做的是这个
然而,它并不是真的喜欢这个。说“无法将 MyFramework.foo[] 隐式转换为 WebService.foo[]
关于如何解决这个问题的任何想法?物体很大,它们基本相同。
.net - 拆箱是否只返回一个指向堆上装箱对象内的值的指针?
在这篇 MSDN 杂志文章中,作者指出(强调我的):
请注意,装箱始终会创建一个新对象并将未装箱值的位复制到该对象。另一方面,拆箱只是返回一个指向装箱对象中数据的指针:不会发生内存复制。但是,通常情况下,您的代码将导致未装箱引用指向的数据无论如何都被复制。
我对我加粗的句子及其后面的句子感到困惑。从我读过的所有其他内容中,包括这个 MSDN page,我以前从未听说过拆箱只会返回一个指向堆上值的指针。我的印象是拆箱会导致您拥有一个包含堆栈上值副本的变量,就像您开始时一样。毕竟,如果我的变量包含“指向堆上值的指针”,那么我没有值类型,我有一个指针。
有人可以解释这是什么意思吗?作者是在破解吗?(文章中至少还有一个明显的错误)。如果这是真的,“您的代码将导致未装箱引用指向的数据无论如何都被复制”的情况是什么?
我刚刚注意到这篇文章已经有将近 10 年的历史了,所以这可能是 .Net 生命早期发生的变化。
c# - Boxing & Unboxing
Is "i" considered to be boxed?
.net - 将此 ArrayList 转换为通用列表是否有效?
我正在编写的代码从非托管代码接收一个 ArrayList,而这个 ArrayList 将始终包含一个或多个 Grid_Heading_Blk 类型的对象。我考虑过将此 ArrayList 更改为泛型列表,但我不确定转换操作是否会如此昂贵,以致于抵消使用泛型列表的好处。目前,我只是foreach (Grid_Heading_Blk in myArrayList)
在将 ArrayList 传递给将使用它的类之后运行一个操作来处理 ArrayList 的内容。
我应该将 ArrayList 转换为通用类型列表吗?如果是这样,最有效的方法是什么?