A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-张扬 中级黑马   /  2012-12-3 09:08  /  1736 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. Int32 v = 5;
  2. Object o = v;
  3. Console.WriteLine(v.ToString()+","+(Int32)o);
复制代码
上面代码中,
v.ToString会进行装箱操作不~?

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

2 个回复

倒序浏览
"如果值类型覆盖了ToString() (或者是方法) 装箱就不必出现!这就是在C#和VB.NET中在值类型上显示调用ToString()非常重要的原因了,因为他们当中的大部分确实覆盖ToString(),显式的调用避免了装箱。"

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
不会。
因为v.ToString()调用的是int.ToString()方法而不是object.ToString()方法
因为int从object派生。
int类型重写了基类的toString方法。
当派生类重写基类方法时,调用的是派生类的方法,而不是基类方法。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马