黑马程序员技术交流社区

标题: convert.tostring() [打印本页]

作者: 王雪磊    时间: 2012-4-14 08:30
标题: convert.tostring()
convert.tostring(str) 与
str.tostring()有什么区别,str.tostring貌似一旦转换为空的话就会出异常,convert.tostring(str)没有这个问题,这个是怎么回事呀?求大虾帮忙
作者: 陈志伟    时间: 2012-4-14 08:44
1、一般用法说明
在C#中所有继承自object的类都有tostring()方法,在没有特别声明的情况下,C#中的类都是默认继承自object,所以都有tostring()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各基本数据类型,也可以是bool或object类对像;

2、ToString()和Convert.ToString()的区别
一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用tostring方法了,就会返回NullReferenceException,除非你要捕捉此异常再做处理,否则在这种情况下就应考虑使用Convert.ToString()方法了,因为Convert.ToString(null)不会抛出异常而是返回空字符串.

3、应用举例
我在这里举一个常见的例子,就是平常的网页参数传递,比如在网页登录验证中从QueryString或当前会话Session中获得对应参数值,我们有下面两种方法:
1.使用Convert.ToString(param)方法:
        string strUserName = Convert.ToString(Session["UserName"]);
        string strUserPwd = Convert.ToString(Session["UserPwd"]);
2.直接调用ToString()方法:
        string strUserName = Session["UserName"].ToString;
        string strUserPwd = Session["UserPwd"].ToString;
当Session["UserName"]或Session["UserPwd"]返回null值时,使用方法1返回的值是空字符串,而直接调用ToString()方法则会抛出NullReferenceException,大家可以根据自己的实际需要来决定使用哪一个方法更合适。
作者: ★心秒★    时间: 2012-4-14 12:25
陈志伟 发表于 2012-4-14 08:44
1、一般用法说明
在C#中所有继承自object的类都有tostring()方法,在没有特别声明的情况下,C#中的类都是默 ...

解释的不错!
作者: 韩艳君    时间: 2012-4-14 14:03
当对象为null时,Convert.ToString(null) 是没问题的,而 string str = null; str.ToString() ; 就会出现错误。此种情况尤其会发生在页面绑定数据的时候。
Convert.ToString() 把Object转换成String对象
Object.ToString() 是从Object里继承来的方法。对于空引用和DBNull的对象直接调用.ToString()会引发异常
作者: 刘真    时间: 2012-4-14 14:24
C#中任何继承object类都有ToString()方法
Convert.ToString(param)方法:param类型可以是各种类型。也就是说任何类型都可以转化为string类型。
ToString()方法不可以转化NULL字符,会抛出异常,除非先做异常处理。
Convert.ToString(param)方法:param可以为NULL,返回空字符。
学习,学习!{:soso_e100:}
作者: 王雪磊    时间: 2012-4-15 10:21
陈志伟 发表于 2012-4-14 08:44 1、一般用法说明 在C#中所有继承自object的类都有tostring()方法,在没有特别声明的情况下,C#中的类都是默 ...

有道理,说的比较明白
作者: 余晓亮    时间: 2012-4-15 11:06
陈志伟 发表于 2012-4-14 08:44
1、一般用法说明
在C#中所有继承自object的类都有tostring()方法,在没有特别声明的情况下,C#中的类都是默 ...

解释的真详细  学习下




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