C#中,像int i = 2; string s = i.toString();这样的类型转换会进行装箱操作吗?

解决方案 »

  1.   

    box、unbox发生在值类型与引用类型之间的转换int i = 2;  // 没有box
    string s = i.ToString();  // 没有box,有的是方法调用仔细理解一下这个链接的内容:
    http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx
      

  2.   

    任何值类型、引用类型可以和object(对象)类型之间进行转换,这才是装箱与拆箱
    例:int i = 10;object obj = i; //隐式装箱object obj = object(i); //显式装箱
      

  3.   

    如果是
    int i =2;
    Object obj = i;
    这是隐式装箱。
      

  4.   

    不进行
    装箱是将值类型转换为 object 类型或由此值类型实现的任一接口类型的过程。
      

  5.   

    装箱与拆箱,是 针对,引用类型和值类型之间的操作。
     从INT 和 STRING 都是值类型 ,是不会装箱或者拆箱的。
    OBJECT OBJ=1;
    INT I=CONVAETE.TOINT32(OBJ) 拆箱
     INT I=1;
    OBJECT OBJ=I; 装箱
      

  6.   

    string不是值类型
    不过这里确实没有装拆箱操作
      

  7.   

    发生在值类型和Object类型之间?还是值类型和引用类型之间?
      

  8.   

    值类型与object之间。之前的回答不够严谨,Sorry。
      

  9.   

    答案确实是不装箱,但是居然有这么多人是认为string是值类型而据此认为不会发生装箱,真是让我无言以对....
      

  10.   

    C#高级编程(第七版)中写到:
    string s = 10.ToString();
    C#数据类型可以分为在栈上分配内存的值类型和在堆上分配内存的引用类型。如果int不过是栈上的一个4字节的值,该如何在它上面调用方法?
       C#的实现方式是通过一个有点魔术性的方式,即装箱。装箱和拆箱可以把值类型转换为引用类型,并把引用类型转换回值类型。因为这是基本的操作,即把值强制转换为object类型。装箱用于描述把一个值类型转换为引用类型。运行库会为堆上的对象创建一个临时的引用类型“箱子”。按书上写的int不过是一个4字节的值,没有办法在它上面调用方法,要装箱之后才能调用方法啊?还有书上说“装箱用于描述把一个值类型转换为引用类型”,难道引用类型和object是一回事吗?
      

  11.   

    int实际对应了CTS里的Int32,而Int32在CTS里是个struct,有特定的几个方法和成员。
    object是所有引用类型的基类。
      

  12.   

    说到C#高级编程,请参阅第33页的描述:For example, when you declare an int in C#, what you are actually declaring is an instance of a .NET struct, System.Int32. This may sound like a small point, but it has a profound significance: it means that you are able to treat all the primitive data types syntactically as if they were classes that supported certain methods.
      

  13.   


    既然object是所有引用类型的基类,那么从值类型转换到object类型或者引用类型都要进行装箱了???
    int变量到底是一个4字节的数据,还是一个system.int32的对象?如果仅是数据那么它应该没有方法可调用啊,如果是struct,那它也是值类型的啊,而string是引用类型,值类型到引用类型不应该装箱吗?
      

  14.   

    不会。http://msdn.microsoft.com/zh-cn/library/yz2be5wk.aspx仔细体会一下。
    --reply by CSDN Study Trial V1.0.0 (starts_2000)