gpt4 book ai didi

c# - 在分配给 ValueType 时装箱?

转载 作者:行者123 更新时间:2023-11-30 19:20:07 25 4
gpt4 key购买 nike

如果我将一个简单的值类型(例如 int)分配给 ValueType 类型的属性,那么该值是否被装箱?

例如,如果我这样做:

int i = 4;
ValueType test = i;

值会被装箱吗?

最佳答案

是的,会的。这是因为每种类型在运行时占用固定数量的内存(例如,int 占用 4 个字节)。一个结构将占用尽可能多的空间来布置内存中的所有字段。

由于您可以在ValueType 中存储任何 值类型,并且由于ValueType 必须与您的类型大小完全相同重新赋值给testValueType类型其实是一个引用类型。

考虑:

int a = 0;
long b = 1;

ValueType test;

test = a;
test = b;

这是完全有效的代码。 test必须在栈上占用固定的大小,ab是不同的大小。希望这能澄清为什么 ValueType 本身不能是值类型。 (跟不能导出值类型的原因有关。)

关于c# - 在分配给 ValueType 时装箱?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7205556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com