复制盒装值
本文关键字:盒装 复制 | 更新日期: 2023-09-27 18:05:19
关于拳击的问题…
int i = 2;
int j = 3;
int k = 4;
object oi = i;
object oj = j;
object ok = k;
oi = oj;
object o = ok;
最后2行会导致2次新的重新装箱吗?
将一个盒装值赋给另一个盒装值是什么意思,就像在最后一行旁边一样?
像上一行那样给一个新的对象变量赋一个盒装值是什么意思?
oi = oj;
object o = ok;
带框的值是对象。只有普通的参考拷贝。不涉及拳击。另外,
将一个盒装值赋给另一个盒装值是什么意思,就像在最后一行旁边一样?
没有给another value
赋值。你刚刚赋值给变量oi
嗯,你总是可以检查IL:
// int i = 2;
IL_0000: ldc.i4.2
IL_0001: stloc.0 // i
// int j = 3;
IL_0002: ldc.i4.3
IL_0003: stloc.1 // j
// int k = 4;
IL_0004: ldc.i4.4
IL_0005: stloc.2 // k
// object oi = i;
IL_0006: ldloc.0 // i
IL_0007: box System.Int32
IL_000C: stloc.3 // oi
// object oj = j;
IL_000D: ldloc.1 // j
IL_000E: box System.Int32
IL_0013: stloc.s 04 // oj
// object ok = k;
IL_0015: ldloc.2 // k
IL_0016: box System.Int32
IL_001B: stloc.s 05 // ok
// oi = oj;
IL_001D: ldloc.s 04 // oj
IL_001F: stloc.3 // oi
// object o = ok;
IL_0020: ldloc.s 05 // ok
IL_0022: stloc.s 06 // o