一、一般用法说明

  ToString()是Object的扩展方法,所以都有ToString()方法;而Convert.ToString(param)(其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象。

二、ToString()和Convert.ToString()的区别

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

  主要的区别就如上所示,由于ToString()是扩展方法,扩展自Object,所以转null报异常。而Convert.ToString()返回空字符串。

  不过Convert.ToString(),作用不算太大,因为:

static void Main(string[] args)

{

string str1 = "";

Console.Write(Convert.ToString(str1)==null+”:”+Convert.ToString(str1)==""); //false//true

Console.WriteLine();

string str2 = null;

Console.WriteLine(Convert.ToString(str2) == null);  //true

Console.WriteLine(Convert.ToString(str2) == "");    //false

Console.ReadKey();

}

  null转了之后还是null,""转了之后还是""。

  所以,配合上string.IsNullOrEmpty(Convert.ToString())还是比较方便的。

Console.WriteLine(string.IsNullOrEmpty(Convert.ToString(str1)));    //true

Console.WriteLine(string.IsNullOrEmpty(Convert.ToString(str1)));    //true

  另外,如果是跟某字符串对比,那么使用Convert.ToString()还是很方便的,例如

    if(Convert.ToString(str) == "123")

    {

    }

三、object到string的转换

  从 object 到 string 大致有四种方式,包括显式转换和as关键词的使用:obj.ToString()、Convert.ToString()、(string)obj、obj as string。他们都能将 object 对象转换成 string 对象。

  前两个方法通常是由别的对象得到 string 对象,它们间的区别如前文所述主要表现在:

ToString() :如果 obj 为 null,调用 obj.ToString() 方法会导致 NullReferenceException 异常。

Convert.ToString():如果 obj 为 null,调用 Convert.ToString()会返回null

(string):用强制转换 (string)obj 要求 obj 的运行时类型必须是 string。如果不是,就会抛出异常。

as :用 as 方法则会相对平稳,当 obj 的运行时类型不是 string 时会返回 null 而不抛出异常。

  所以在通常在我们需要得到某个对象的 string 表达形式时,我们应该使用 ToString() 和 Convert.ToString(),这时候你就得根据情形选一个,假如你能保证你的对象不为 null,则两个差不多。如果有可能为 null,你就应该用 Convert.ToString(),如果你希望它为 null 的时候抛出异常,那么当然可以选择 ToString()。

  ToString()这个方法很方便, 一般都是转之前需要先判断是否为null.

转载于:https://www.cnblogs.com/allyh/p/10680092.html

C# ToString()和Convert.ToString()的区别【转】相关推荐

  1. ToString()、Convert.ToString()、(string)、as string 的区别

    通常 object 到 string 有四种方式(假设有object obj):obj.ToString().Convert.ToString().(string)obj.obj as string. ...

  2. java converttostring_由 ToString()和Convert.ToString() 引发的问题

    对于久经沙场的程序猿来说,类型转换再熟悉不过了,在代码中我们也会经常用到. 前几天,有个学生问我关于类型转换ToString()和Convert.ToString()的区别,这么常用的东西我竟然支支吾 ...

  3. Convert.ToString和ToString的区别

    Convert.ToString能处理字符串为null的情况,不抛出异常. ToString方法不能处理字符串为null的情况,会抛出异常.如:"未将对象引用设置到对象的实例". ...

  4. toString()与new String ()用法区别

    toString()与new String ()用法区别 TestString.java package com.atguigu;import com.sun.org.apache.xerces.in ...

  5. toString()和String.valueOf()的区别(转)

    惯例广告一发,对于初学真,真的很有用www.java1234.com,去试试吧! 有的朋友在用这两个的时候感觉差不多 其实,很多时候效果是差不多的 但是,有的时候用.toString()会报错,而用S ...

  6. 使用System.Convert.ToString将字符串转换成utf16进制编码

    我们在编写某些特殊的字符串处理程序的时候,需要获得字符的16进制编码,这个在vb中一般使用asc函数来进行,但是在c#中就没有那么简单.前一阵,为了将url中的汉字转换成utf编码的,我发现可以用Sy ...

  7. JS中的toString、Object.toString、Object.prototype.toString

    不同类型值的toString方法: //Number const num = 123; num.toString(); // '123' (123).toString(); // '123' 整数必须 ...

  8. 最全ToString(“X2“)和ToString(“X“)详解含义及使用

    ToString("X2") 为C#中的字符串格式控制符 大写X:ToString("X2")即转化为大写的16进制. 小写x:ToString("x ...

  9. java list的tostring,Java ArrayList toString() 方法

    toString() 方法将 Arraylist 对象转换为字符串. 语法 toString() 方法的语法为: arraylist.toString() 注:arraylist 是 ArrayLis ...

最新文章

  1. java网络编程udp_java网络编程 UDP网络编程问题
  2. python使用教程pandas-「Python」pandas入门教程
  3. Mac OS 错误代码 -8072的可行解决方法
  4. 2015年我国互联网行业概况及现状分析
  5. 机器人学中的一些概念3——雅克比矩阵
  6. linux卡死在选择内核界面,求助:am3352 linux内核启动时卡在 Starting kernel ...
  7. coco数据集大小分类_Microsoft COCO 数据集
  8. 图片像QQ有消息闪动的代码:
  9. Excel比较工具SpreadSheet
  10. 火柴人小程序linux,火柴人手绘小程序
  11. matlab基本图形处理实验,MATLAB数字图像处理实验讲义(指导书)
  12. 深圳市及各区人才补贴
  13. 蓝桥杯试题 入门训练 圆的面积
  14. thinkphp使用migration/Seeder
  15. 【Python军火库】smtplib+email:一起来用Python发送电子邮件吧!
  16. 开源软件推荐-TMS运输管理系统 KYTMS
  17. html透明玻璃效果,ps制作逼真的透明玻璃特效效果
  18. iOS中Keychain保存用户名和密码
  19. React Native三端同构
  20. 四足机器人champ项目和高程图构建elevation_mapping联合使用(Ubuntu18.04)

热门文章

  1. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x
  2. 虚拟网卡实现一个网卡多个地址
  3. 男性最脆弱的五大器官
  4. 去除html标签的工具类,Java正则匹配过滤移除html标签以及获取img完整标签工具类...
  5. pdf 改变页面大小 python_python – 裁剪.pdf文件的页面
  6. python中排序的函数_Python中sorted()排序函数
  7. python进程池的实现原理_Python基于进程池实现多进程过程解析
  8. CVX学习笔记(转载
  9. 09Linux虚拟机快照
  10. 网上购物软件的测试计划,网上购物平台购物测试计划书