TestCode(I don't know what's going on, but I can't paste the code)
The analysis is as follows:
Note: Stack is on the left and stack is on the right.
Note: In (angle) objectangle, The binning action is executed to obtain the address of the field in the value-type angle part of the object objangle.Algorithm StackCreate a temporary angle value type instance. This value type accepts a part of the currently referenced object of objectangle that belongs to the angle value type (also known as 'unboxed part ') (I don't know how to express it here. I will write it as a "stack in the general sense", so I will understand it first). In fact, the unpacking command does not include copying data back to the stack. (Packing includes copying data to the heap)
Fourth, the transformation to iangle is accompanied by the data already on the stack, so there is no replication action. When you access a boxed value through an interface, you do not need to copy it.