由 ToString()和Convert.ToString() 引发的问题
对于久经沙场的程序猿来说,类型转换再熟悉不过了,在代码中我们也会经常用到。
前几天,有个学生问我关于类型转换ToString()和Convert.ToString()的区别,这么常用的东西我竟然支支吾吾了半天未回答上来,后来查了一下资料总算弄明白了。
首先,将某类型转换为string,大家会想到几种转换方法呢?
1、ToString();2、Convert.ToString();3、(string);4、as string;
那么下面,我们来看一下这四个有什么区别:
1、首先来看一下ToString()
ToString()是Object的扩展方法,所以都有ToString()方法,但是当返回的数据类型中有可能出现null值时如果调用ToString方法了,就会返回NullReferenceException。
2、Convert.ToString()
Convert.ToString() 转 null 不会抛出异常,而是返回”“
3、(string)
用强制转换(string)obj 要求 obj 的运行时类型必须是 string。如果不是,就会抛出异常。
4、as string
as 方法则会相对平稳,当 obj 的运行时类型不是 string 时会返回 null 而不抛出异常
好啦,现在已经明了了。
由 ToString()和Convert.ToString() 引发的问题的更多相关文章
- ToString()和Convert.ToString()的区别
		ToString()和Convert.ToString()的区别 一般情况下,这两种方法都可以通用,但是当返回的数据类型中有可能出现null值时如果调用ToString方法了,就会返回NullRefe ... 
- C# ToString()和Convert.ToString()的区别
		一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型, ... 
- C# ToString()和Convert.ToString()的区别【转】
		一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型, ... 
- ToString()、Convert.ToString()、(string)、as string 的区别
		通常 object 到 string 有四种方式(假设有object obj):obj.ToString().Convert.ToString().(string)obj.obj as string. ... 
- [C#]C#中ToString()和Convert.ToString()的区别
		一.一般用法说明 ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型, ... 
- ToString和Convert.ToString处理null值
		http://www.cnblogs.com/qinge/p/5687806.html文章来源 1.Convert.ToString能处理字符串为null的情况. 测试代码如下: 1 2 3 4 5 ... 
- . ToString(),Convert.ToString(),(string),as比较:
		http://www.cnblogs.com/chehaoj/archive/2010/02/23/1671955.html 通常 object 到 string 有四种方式(假设有object ob ... 
- Part 59 to 60 Difference between Convert ToString and ToString,String and StringBuilder
		Part 59 Difference between Convert ToString and ToString Part 60 Difference between String and Strin ... 
- Convert.ToString和ToString的区别
		Convert.ToString能处理字符串为null的情况,不抛出异常. ToString方法不能处理字符串为null的情况,会抛出异常.如:“未将对象引用设置到对象的实例”. 
随机推荐
- 性能分析-java程序篇之案例-工具和方法
			1. 背景说明 线上服务响应时间超过40秒,登录服务器发现cpu将近100%了(如下图),针对此问题,本文说明排查过程.工具以定位具体的原因. 2. 分析排查过程 此类问题的排查,有两款神器可用,分别 ... 
- 【Linux命令】setfacl、getfacl命令基本用法(文件权限全文控制列表acl)
			一.setfacl命令setfacl用来细分linux下的文件权限. chmod命令可以把文件权限分为u,g,o三个组,而setfacl可以对每一个文件或目录设置更精确的文件权限. 换句话说,setf ... 
- Spring Boot MVC api返回的String无法关联到视图页面
			1:问题 使用 @Restcontroller 返回值定义为String 时 无法返回具体的页面 @RestController public class HelloController { @Get ... 
- python内置函数的使用(一)
			迭代器(iterator)和可迭代对象(iterable) 在python中,要实现要个对象可以进行遍历,也就是实现for循环,那么他必须是一个可迭代对象,例如string,tuple,list,di ... 
- sprintf函数 (字符格式化函数)
			sprintf函数 字符串格式化命令,主要功能是把格式化的数据写入某个字符串中. sprintf函数原型在<studio.h>中. sprintf( [指向输入格式化后的字符串的缓冲区的指 ... 
- Python 爬虫从入门到进阶之路(四)
			之前的文章我们做了一个简单的例子爬取了百度首页的 html,我们用到的是 urlopen 来打开请求,它是一个特殊的opener(也就是模块帮我们构建好的).但是基本的 urlopen() 方法不支持 ... 
- 基于STM32F429的内存管理
			1.内存管理介绍 内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源. 内存管理的实现方法有很多种,他们其实最终都是要 ... 
- 什么是DaemonSet
			DaemonSet只管理Pod对象,通过nodeAffinity和Toleration两个调度器,保证每个节点上只有一个Pod 集群动态加入了新Node,DaemonSet中的Pod也会添加在新加入N ... 
- c#时间戳相互转换
			/// <summary> /// 获取时间戳 /// </summary> /// <returns></returns> public static ... 
- 配置linux 防火墙,只有固定IP和端口才能能访问完美解决
			//添加开放的端口和固定ip vi /etc/sysconfig/iptables [root@root220156 /]# echo "unset MAILCHECK"> ... 
