我正在寻找一个清晰,简洁和准确的答案.
理想情况下,作为实际答案,虽然欢迎链接到良好的解释.
我是编程的新手,
根据MSDN,
Boxing是将值类型转换为类型对象或由此值类型实现的任何接口类型的过程.当CLR选中一个值类型时,它将值包装在System.Object中并将其存储在托管堆上.取消装箱从对象中提取值类型.拳击是隐含的; 拆箱是明确的.
我知道我们可以在arraylist中存储任何对象,因为它system.object是所有类型的基础.拳击和拆箱发生在阵列列表中.我同意这一点.
拳击和拆箱会发生在阵列中吗?因为我们可以创建如下的对象数组
object[] arr = new object[4] { 1, "abc", 'c', 12.25 };
Run Code Online (Sandbox Code Playgroud)
我的理解是拳击和拆箱发生在这样的数组正确吗?
拳击是指将值类型分配给对象类型.将引用类型分配给对象时是否相同?
当分配一个类型(不是对象)时,会发生什么?那拳击呢?
int num=5;
object obj = num; //boxing
//////////////////////
MyClass my = new MyClass();
object obj = my; //what is name this convert (whethere is boxing?)
Run Code Online (Sandbox Code Playgroud)