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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© guoguo 中级黑马   /  2014-3-9 15:43  /  1343 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 guoguo 于 2014-3-11 09:45 编辑

请教一下
object o;
string s=(o).tostring();与(string)o的区别

评分

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

查看全部评分

4 个回复

正序浏览
string str=(string)obj;
这是一个“拆箱”的过程,你必须保证obj他原本是一个string类型。
只不过因为某些原因,它被进行了“装箱”的操作变成了object类型或者其他类型。

toString()是个方法,任何类型都有这个方法。所以这个方法对谁用都可以。但是上面的就不行了。
回复 使用道具 举报
强转(String)  强转对类型的匹配需要程序员自己分辨,必须是小转大,类型必须匹配,否则会程序错误或丢失精度.
Covert.ToString  一切类型都可以转换成string类型,任何对象都可以安全地.toString().
回复 使用道具 举报
ToString()是类的方法,返回的东西是编写者决定的,也就是返回的是编写者经过自己写的程序转换好的数据。
而强制转换是让编译器把需要转换类型的数据按照读string类型数据的方式来读,但数据对不对会不会报错是你这个使用强制转换的人来负责的了。
回复 使用道具 举报
toString一个方法,任何一个对象都可以有自己的字符串表达方式,就好比任何物品都可以有自己的名字一样,你可以重写这个方法,返回你需要的字符串数据

而强制类型转换成String,就是将原本不是String类型的对象转换成String类型,它不会去调用tostring方法。这就相当于你将物品A当成物品B来使用,如果两者不能转换的话,就相当于你把石头当救生圈使用了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马