zoukankan      html  css  js  c++  java
  • ToString()和Convert.ToString()的区别

    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.WriteLine(Convert.ToString(str1) == null);  //false
                Console.WriteLine(Convert.ToString(str1) == "");    //true
    
                string str2 = null;
                Console.WriteLine(Convert.ToString(str2) == null);  //true
                Console.WriteLine(Convert.ToString(str2) == "");    //false
    
                Console.ReadKey();
            }
    复制代码

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

     

    object到string的转换

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

    1. ToString() :如果 obj 为 null,调用 obj.ToString() 方法会导致 NullReferenceException 异常。
    2. Convert.ToString():如果 obj 为 null,调用 Convert.ToString()会返回null
    3. (string):用强制转换 (string)obj 要求 obj 的运行时类型必须是 string。如果不是,就会抛出异常。
    4. as :用 as 方法则会相对平稳,当 obj 的运行时类型不是 string 时会返回 null 而不抛出异常。


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

      ToString()这个方法太方便了,以致于以为就它这一种方法, 一般都是转之前先判断是否为null.

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 字符串逆序
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 最长字符串
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Java实现 蓝桥杯VIP 算法训练 成绩的等级输出
    Qt 自定义model实现文件系统的文件名排序
  • 原文地址:https://www.cnblogs.com/tiantianle/p/5585718.html
Copyright © 2011-2022 走看看