带引用类型变量的对象类型装箱

Meh*_*eli 8 c# asp.net boxing

拳击是指将值类型分配给对象类型.将引用类型分配给对象时是否相同?

当分配一个类型(不是对象)时,会发生什么?那拳击呢?

    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)

Eri*_*ert 21

拳击是指将值类型分配给对象类型.

关.当"拳击"发生值类型的值转换一个引用类型.

将引用类型的值赋给对象类型的变量时是否相同?

不会.当值类型的值转换为引用类型时,就会发生Boxing .将引用类型的值转换为对象不是装箱转换,它是引用转换.

当引用类型(不是对象)的值被赋给对象类型的变量时,会发生什么?

引用类型的值是引用.将引用分配给object类型的变量时,将在与该变量关联的存储位置中创建引用的副本.

那拳击呢?

不会.当值类型的值转换为引用类型时,就会发生Boxing .将引用类型的值转换为对象不是装箱转换,它是引用转换.


Hen*_*man 12

我认为你的意思是

string s = "hello";
object x = s;        // no boxing, just implict conversion to base-type.
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为System.String像所有其他类一样,派生自System.Object:

public sealed class String : Object { ... }
Run Code Online (Sandbox Code Playgroud)