我创建了一个控制台应用程序来分析
的行为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
答案 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