黑马程序员技术交流社区

标题: C#语法 [打印本页]

作者: guoguo    时间: 2014-3-9 15:43
标题: C#语法
本帖最后由 guoguo 于 2014-3-11 09:45 编辑

请教一下
object o;
string s=(o).tostring();与(string)o的区别
作者: 不经夸。    时间: 2014-3-9 16:07
toString一个方法,任何一个对象都可以有自己的字符串表达方式,就好比任何物品都可以有自己的名字一样,你可以重写这个方法,返回你需要的字符串数据

而强制类型转换成String,就是将原本不是String类型的对象转换成String类型,它不会去调用tostring方法。这就相当于你将物品A当成物品B来使用,如果两者不能转换的话,就相当于你把石头当救生圈使用了。
作者: Q.z.l    时间: 2014-3-9 17:36
ToString()是类的方法,返回的东西是编写者决定的,也就是返回的是编写者经过自己写的程序转换好的数据。
而强制转换是让编译器把需要转换类型的数据按照读string类型数据的方式来读,但数据对不对会不会报错是你这个使用强制转换的人来负责的了。
作者: zhl406893081    时间: 2014-3-9 17:58
强转(String)  强转对类型的匹配需要程序员自己分辨,必须是小转大,类型必须匹配,否则会程序错误或丢失精度.
Covert.ToString  一切类型都可以转换成string类型,任何对象都可以安全地.toString().
作者: azve    时间: 2014-3-9 19:06
string str=(string)obj;
这是一个“拆箱”的过程,你必须保证obj他原本是一个string类型。
只不过因为某些原因,它被进行了“装箱”的操作变成了object类型或者其他类型。

toString()是个方法,任何类型都有这个方法。所以这个方法对谁用都可以。但是上面的就不行了。




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