为什么Convert.ToString(object as null)与Convert.ToString(string为null)的行为

时间:2016-04-29 11:06:35

标签: c#

我创建了一个控制台应用程序来分析

的行为
Convert.ToString()

,我知道Convert.ToString()不会导致异常,但就对象而言,它将返回字符串初始化为空,但是在字符串的情况下,它仍为空。

string s = null;
object obj = null;
string objec = Convert.ToString(obj);//it return an empty string
string ss = Convert.ToString(s);// it returns ss=null

1 个答案:

答案 0 :(得分:2)

当你查看他们编译的程序集时,程序看起来像这样

        string s = null;
        Convert.ToString(null); //1
        Convert.ToString(s);  // 2

第一个ToString返回""字符串,因为它检查以下条件

         if (value == null)
        {
            return string.Empty;
        }

并且第二个ToString返回null,因为它执行以下方法

 public static string ToString(string value)
        {
            return value;
        }

它看起来很混乱,因为ToString在两个语句中都是相同的,但实际上它们的工作方式不同。第一个ToString函数调用Object Type的ToSting,第二个ToString函数调用String Type的ToString