用 Console.WriteLine("当前整数为:{0}",i) 输出,这里的整型数 i ,会执行装箱操作吗?我看书上说,这种情况,会执行装箱操作,因为Console.Writeline()需要object类型,
我有点不明白,真是这样吗?这不是多此一举吗?
    class Program
    {
        static void Main(string[] args)
        {
            int i = 10;
            Console.WriteLine("当前整数为:{0}",i);
            Console.ReadLine();
        }
    }

解决方案 »

  1.   

     Console.WriteLine()方法重载了19 个方法
     其中一个重载方法的参数就是int类型的
      

  2.   

    看看IL代码
    http://topic.csdn.net/u/20090403/14/5b7bc68e-820b-49cd-bd36-178f9a30c137.html
      

  3.   

    会装箱的,再重载也是调用
    public static void WriteLine (
    string format,
    Object arg0
    )
    这里必然会装箱的。书上写的很对。最好写
    Console.WriteLine("当前整数为:{0}",i.ToString());
      

  4.   

    这里必然会装箱的。书上写的很对。最好写 
    Console.WriteLine( "当前整数为:{0} ",i.ToString());
    -----------------------------------------------
    为什么 i.tostring()就不会装箱了呢?
    是不是因为字符串string型本身就是引用类型呀。另外,这样写只是手动装箱呀,效率没有任何变化吧。
    一个是clr负责装箱,一个是手动写代码进行装箱,效率应该完全一样吧。
      

  5.   

    i.ToString()是数字格式化为字符串,的确是引用类型。值类型到object时才需要装箱,string->object只是类型转换,没有装箱。