Convert.ToString(null)
Run Code Online (Sandbox Code Playgroud)
回报
null
Run Code Online (Sandbox Code Playgroud)
正如我所料.
但
Convert.ToString(null as object)
Run Code Online (Sandbox Code Playgroud)
回报
""
Run Code Online (Sandbox Code Playgroud)
为什么这些不同?
这些天我遇到了很多奇怪的场景 :-)
我在ASP.Net应用程序中测试了以下两个代码.代码1抛出异常(如预期的那样),而当字符串值为null时,代码2不会抛出异常(与期望相反).
// 代码1:导致异常
string test = Convert.ToString(subscriber.EncryptedSSN).Substring(0, Convert.ToString(subscriber.EncryptedSSN).Length >= 5 ? 5 : Convert.ToString(subscriber.EncryptedSSN).Length);
Run Code Online (Sandbox Code Playgroud)
// 代码2:不抛出异常
<%# Convert.ToString(Eval("EncryptedSSN")).Substring(0, Convert.ToString(Eval("EncryptedSSN")).Length >= 5 ? 5 : Convert.ToString(Eval("EncryptedSSN")).Length) %>
Run Code Online (Sandbox Code Playgroud)
参考文献: