zoukankan      html  css  js  c++  java
  • object to string

    ToString()与Convert.ToString(p)

    参考资料:http://www.cnblogs.com/kissdodog/p/3565988.html

    一、一般用法说明

    ToString():是Object的扩展方法,所以都有ToString()方法;

    Convert.ToString(param):其中param参数的数据类型可以是各种基本数据类型,也可以是bool或object类对象。

    二、两者的区别

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

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

    不过Convert.ToString(),作用不算太大,因为null转了之后还是null,""转了之后还是""。

    Convert.ToString("") == "";

    Convert.ToString(null) == null;

            }

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

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

    三、objectstring的转换

    从 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。

  • 相关阅读:
    LeetCode 623. Add One Row to Tree
    LeetCode 894. All Possible Full Binary Trees
    LeetCode 988. Smallest String Starting From Leaf
    LeetCode 979. Distribute Coins in Binary Tree
    LeetCode 814. Binary Tree Pruning
    LeetCode 951. Flip Equivalent Binary Trees
    LeetCode 426. Convert Binary Search Tree to Sorted Doubly Linked List
    LeetCode 889. Construct Binary Tree from Preorder and Postorder Traversal
    LeetCode 687. Longest Univalue Path
    LeetCode 428. Serialize and Deserialize N-ary Tree
  • 原文地址:https://www.cnblogs.com/huhunet/p/7402851.html
Copyright © 2011-2022 走看看