黑马程序员技术交流社区

标题: int.toString()会进行装箱操作吗 [打印本页]

作者: 黑马-张扬    时间: 2012-12-3 09:08
标题: int.toString()会进行装箱操作吗

  1. Int32 v = 5;
  2. Object o = v;
  3. Console.WriteLine(v.ToString()+","+(Int32)o);
复制代码
上面代码中,
v.ToString会进行装箱操作不~?
作者: 快乐之恋    时间: 2012-12-3 09:40
"如果值类型覆盖了ToString() (或者是方法) 装箱就不必出现!这就是在C#和VB.NET中在值类型上显示调用ToString()非常重要的原因了,因为他们当中的大部分确实覆盖ToString(),显式的调用避免了装箱。"
作者: 韩俊    时间: 2012-12-3 10:51
不会。
因为v.ToString()调用的是int.ToString()方法而不是object.ToString()方法
因为int从object派生。
int类型重写了基类的toString方法。
当派生类重写基类方法时,调用的是派生类的方法,而不是基类方法。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2