ToString Convert.ToString和(string)区别
来源:互联网 发布:淘宝密码用户名是什么 编辑:程序博客网 时间:2024/04/29 02:55
通常object到string有四种方式:(假设有object obj)obj.ToString,Convert.ToString,(string)obj,obj as string。
他们都能将object对象转换成string对象。我就讲讲他们的异同以及在实际中应该使用哪个。
前两个方法通常是由别的对象得到string对象,它们间的区别只表现在要转换的对象为null时,如果obj为null,调用obj.ToString方法会导致NullReferenceException异常,调用Convert.ToString不会抛出异常而返回一个null。
用强制转换(string)obj要求obj的运行时类型必须是string。如果不是,就会抛出异常。用as方法则会相对平稳,当obj的运行时类型不是string时会返回null而不抛出异常。
所以在通常在我们需要得到某个对象的string表达形式时,我们应该使用ToString和Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为null,则两个差不多。如果有可能为null,你就应该用Convert.ToString,如果你希望它为null的时候抛出异常,那么当然可以选择.ToString。
-------------------------------------------分界线---------------------------------------------------------------------------------------------------
补充:
通常较常用的数据间转换是parse()和toString()
前者是把字符串转成数值,而后者相反。由于toString()是Object中的方法,因此 所有类都会有自己的toString()方法,只是看不同的类是否有重新复写。而你所调用的ToString()方法,是调用示例所属类的ToString()方法。
一般(String)方法,也就是强制转型,是我们明明知道“谁是谁”的时候用到。多出现在继承inheritance的例子中。比如,Dog类继承Animal类,当我们需要upcast或downcast的时候(泛化和聚化)会用到强制转型。因为我们很确定,dog就是animal。而向下转型的时候,比如在一个Array里面,我们要存入一组数据,为了保证所有数据都能够存入我们往往会对这个数组存数数据的类型扩大化,比如都扩大到Animal。而在我们取数据的时候,我们很确定第二个位置就是一个Cat类型的实例,这个时候(也就是DownCast时),我们就回强制转型(Cat)。
他们都能将object对象转换成string对象。我就讲讲他们的异同以及在实际中应该使用哪个。
前两个方法通常是由别的对象得到string对象,它们间的区别只表现在要转换的对象为null时,如果obj为null,调用obj.ToString方法会导致NullReferenceException异常,调用Convert.ToString不会抛出异常而返回一个null。
用强制转换(string)obj要求obj的运行时类型必须是string。如果不是,就会抛出异常。用as方法则会相对平稳,当obj的运行时类型不是string时会返回null而不抛出异常。
所以在通常在我们需要得到某个对象的string表达形式时,我们应该使用ToString和Convert.ToString,这时候你就得根据情形选一个,假如你能保证你的对象不为null,则两个差不多。如果有可能为null,你就应该用Convert.ToString,如果你希望它为null的时候抛出异常,那么当然可以选择.ToString。
-------------------------------------------分界线---------------------------------------------------------------------------------------------------
补充:
通常较常用的数据间转换是parse()和toString()
前者是把字符串转成数值,而后者相反。由于toString()是Object中的方法,因此 所有类都会有自己的toString()方法,只是看不同的类是否有重新复写。而你所调用的ToString()方法,是调用示例所属类的ToString()方法。
一般(String)方法,也就是强制转型,是我们明明知道“谁是谁”的时候用到。多出现在继承inheritance的例子中。比如,Dog类继承Animal类,当我们需要upcast或downcast的时候(泛化和聚化)会用到强制转型。因为我们很确定,dog就是animal。而向下转型的时候,比如在一个Array里面,我们要存入一组数据,为了保证所有数据都能够存入我们往往会对这个数组存数数据的类型扩大化,比如都扩大到Animal。而在我们取数据的时候,我们很确定第二个位置就是一个Cat类型的实例,这个时候(也就是DownCast时),我们就回强制转型(Cat)。
强制转型相比Something As String的方法要强烈,如果转型不成功会直接抛出异常,而后者只是返回一个null值。
(转载自http://hi.baidu.com/zhaohuang1201/blog/item/19bb5d0876a119c73ac7634f.html)
- ToString Convert.ToString和(string)区别
- ToString Convert.ToString和(string)区别
- ToString()和Convert.ToString()的用法区别
- ToString()和Convert.ToString()的用法区别
- ToString()和Convert.ToString()的用法区别
- ToString()和Convert.ToString()的用法区别
- ToString()和Convert.ToString()的用法区别
- ToString()和Convert.ToString()的区别
- Convert.ToString()和ToString()的区别
- Convert.ToString()和ToString()区别在哪里?
- C# ToString()和Convert.ToString()的区别
- ToString()和Convert.ToString()
- ToString()、Convert.ToString()、(string)、as string 的区别
- ToString()、Convert.ToString()、(string)、as string 的区别
- ToString()、Convert.ToString()、(string)、as string 的区别
- ToString()、Convert.ToString()、(string)、as string 的区别
- ToString()、Convert.ToString()、(string)、as string 的区别
- ToString()、Convert.ToString()、(string)、as string 的区别
- Android利用Webservice访问远程数据库遇到的问题
- 陌生领域快速学习四大技巧 2012-03-18 12:13:53
- java中遍历MAP方法
- Object类中的equals与toString方法概述
- 使用javah和javap得到JNI接口的签名
- ToString Convert.ToString和(string)区别
- Javascript之this关键字的深入理解
- 蛋疼的virtualbox
- 顺序容器(Vector和List)
- brk(),sbrk(),malloc(),calloc()
- 十个利用矩阵乘法解决的经典题目
- 突然无聊,写个计算素数的,,让它计算1000000个素数出来试试
- poj 3083
- Visual Studio 有用的插件