为什么Convert.ToString(对象为null)与Convert.ToSString(字符串为null)的行为



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

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

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

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

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

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

第二CCD_ 4由于执行以下方法而返回null

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

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

相关内容

最新更新