为什么Convert.ToString的(对象为空)与Convert.ToString
问题描述:
我创建了一个控制台应用程序的行为(字符串空)来分析为什么Convert.ToString的(对象为空)与Convert.ToString
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;
}
和第二ToString
回报null,因为它执行以下方法
public static string ToString(string value)
{
return value;
}
它看起来令人困惑,因为ToString
在两个语句上都是相同的,但实际上它们的工作方式不同。第一个ToString
函数调用Object Type
的ToSting和第二个ToString
函数调用ToString的String Type
什么问题? – fhogberg
请分享您的确切问题。 –
我认为他的问题是为什么这是不同的行为,当他们都是参考类型,并存储在堆 – Baahubali