boxing 相关问题

Boxing是指将值类型包装在引用类型包装器中,以便在需要多态(转换为Object或接口)时使用它。

向上转型和向下转型也是装箱和拆箱?

我是面向对象编程的新手 我对这些概念有疑问 C#中的向上转型和向下转型以及装箱和拆箱是否具有相同的含义? 向上和向下转换也是装箱和拆箱?

回答 1 投票 0

为什么调用未重写的结构方法需要装箱?

根据调用 ToString() 时对结构进行装箱,在 C# 结构上调用未重写的方法会导致其被装箱。这最终是因为 callvirt IL 指令的约束方式

回答 1 投票 0

当使用泛型在集合中使用对象时,.Net 会进行类型转换吗?

.net CLR 是否将对象类型转换为集合声明中提到的对象? 如果我声明一个 列表 lststrs= 新列表(); lststrs.add("ssdfsf"); .net 类型是否...

回答 8 投票 0

为什么没有额外分配内存

当我进行以下基准测试时,基准信息表明没有额外的内存分配。但是,将结构转换为接口并不涉及...

回答 1 投票 0

编译器如何引用未装箱的类型?

我目前正在用 python 构建我的第一个编译器。我已经完成了词法分析器、解析器和分析器。我打算使用 llvmlite 库来发出 ir。我遇到麻烦了

回答 1 投票 0

在 Kotlin kotest 中,数字装箱对于小于 128 的数字给出 false

Kotlin 文档包含以下信息。 由于 JVM 对 -128 到 127 之间的整数进行了内存优化,所以对 a 的所有可为空的引用实际上都是同一个对象。

回答 1 投票 0

比较结构是否相等,无需装箱

我遇到了一种适用于结构体(SomeStruct)的扩展方法,并返回该值是否等于默认值(SomeStruct)(当调用无参数构造函数时)。 公开

回答 2 投票 0

为什么每当三元运算符出现 else 情况时 Java 都会调用 Integer.intValue() ?

当我提供大于 4000 的种子时,它会按原样返回。但对于任何小于或等于 4000 的种子(即当三元运算符条件计算为 false 时),该程序结束...

回答 1 投票 0

为什么每当三元运算符出现 else 情况时,java 都会尝试调用“java.lang.Integer.intValue()”?

因此,当我提供大于 4000 的种子时,它会按原样返回。 但是当任何种子小于或等于 4000 时(即当三元运算符条件评估为 false 时)此程序...

回答 0 投票 0

复合格式中的装箱分配

在 Rider Resharper 中建议简化字符串插值。 执行此操作时,堆分配查看器插件会警告我有关装箱分配的信息。事实上,IL 代码是不同的,当运行时...

回答 1 投票 0

装箱和拆箱对性能的影响相同吗?

装箱和拆箱对性能的影响相同吗?或者说,拆箱速度更快? (如果有,能否简单说明一下主要原因。)

回答 3 投票 0

是否可以获取指向装箱非托管值类型的指针?

是否可以获取指向装箱非托管值类型的指针,而无需编写大型 switch 语句来对每种支持的类型进行强制转换?就像是: 对象值; // 包含一个

回答 1 投票 0

C# 中字符串会被装箱吗?

2024 年 1 月 5 日更新:此链接的答案似乎表明 C# 编译器在尝试将字符串转换为对象时完全删除了对象转换:https://stackoverflow.com/a/51381643/3。 ..

回答 3 投票 0

Integer -> double 拆箱,但 Double -> int 不拆箱。为什么?

这个 Integer -> double conversion 编译没有错误 双 d = Integer.valueOf(1); 这意味着发生以下情况: 整数拆箱为 int int 值经历了拓宽原语

回答 1 投票 0

是引用类型字段的时候是值类型装箱吗?

有代码: 结构A { 整数b; } B级 { 一个一个; 整数b; } 问题是: B 中的 a 是否已装箱? B 中的 a 位于栈中还是堆中? A 中的 b 是否已装箱? b 是在 A 栈中还是在 hea 中...

回答 6 投票 0

装箱特征如何影响传递给它的参数的生命周期? (有一个非常具体的例子)

这是一个非常简单但具体的示例,它会产生我无法理解的编译错误: 使用 std::path::Path; 特质 MyTrait { fn my_func(&self, t: T); } 结构 MyImpl {}...

回答 1 投票 0

当泛型类型限制为类时,CIL 显示“box”操作

我有以下方法: public static bool EquivalentTo(这个T?当前,T?比较) 其中 T :类 { if(当前为空&&比较为空) // 两者都为空...

回答 1 投票 0

如何在Java中将int[]转换为List<Integer>?

如何在 Java 中将 int[] 转换为 List? 当然,除了逐项循环执行之外,我对任何其他答案都感兴趣。但如果没有其他答案,我会选择那个......

回答 21 投票 0

(取消)Java 中的原始数组装箱

在 Android Java 世界中,是否有一种直接(理想情况下一次调用)的方法将 int 数组转换为 ArrayList 并返回?在 ArrayList 上调用 toArray() 返回一个数组

回答 4 投票 0

Boxing 如何将数据从堆栈移动到堆?

我是 Rust 新手,试图了解拳击是如何工作的。 默认情况下,对象分配在堆栈中。 在下面的代码中,对象“s”被分配在堆栈中。这意味着变量...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.