由 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的情况,会抛出异常.如:“未将对象引用设置到对象的实例”.
随机推荐
- php 重复问题
结果: 结论: 尽量在方法内用变量去接受重复的参数或重复的方法/结果,消耗的时间积少成多
- 【RTOS】基于V7开发板的最新版FreeRTOS V10.2.0程序模板,含MDK和IAR,支持串口打印任务执行情况
模板下载: 链接:https://pan.baidu.com/s/1N32Hx7cTbDoRinuzTUB3zw 提取码:6aox 1.MDK使用MDK5.26及其以上版本. 2.IAR使用IAR ...
- 你真的会用搜索吗?—— google 搜索技巧
鄙人用了那么多年 google ,却只会简单的空格. 虽然空格已经很强大了.google 对此做了非常多的优化,原则是让你只用最基础的输入搭配空格就能达到跟下面介绍的方法几乎一样的效果,但是还有知道一 ...
- ubuntu上编译和使用easy_profiler对C++程序进行性能分析
本文首发于个人博客https://kezunlin.me/post/91b7cf13/,欢迎阅读最新内容! tutorial to compile and use esay profiler with ...
- LeetCode 第70题动态规划算法
导言 看了 动态规划(https://www.cnblogs.com/fivestudy/p/11855853.html)的帖子,觉得写的很好,记录下来. 动态规划问题一直是算法面试当中的重点和难点, ...
- Windows鼠标右键新建中增加新建md文件
1.新建一个文本文件,拷贝一下内容到其中: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.md\ShellNew] "Nu ...
- Geohash精度和原理
转自:https://blog.csdn.net/u011497262/article/details/81210634 https://www.jianshu.com/p/1ecf03293b9a ...
- Python菜鸟文本处理4种方法
自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python的文本处理的一些小方法. 话不多说,代码撸起来. python大小写字符互换 在进行大小写互换 ...
- Unrecognized header format %
<VirtualHost *:*> RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME} </ ...
- 剑指offer 27:二叉搜索树与双向链表
题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 解题思路 采用中序遍历遍历二叉树,利用二叉排序树的特性,顺次连接节点,形成 ...