【发布时间】:2011-06-15 04:22:53
【问题描述】:
为什么第二个会产生异常而第一个不会?
string s = null;
MessageBox.Show(s);
MessageBox.Show(s.ToString());
更新 - 我能理解的异常,(对我来说)令人费解的一点是为什么第一部分没有显示异常。这与 Messagebox 无关,如下图所示。
例如:
string s = null, msg;
msg = "Message is " + s; //no error
msg = "Message is " + s.ToString(); //error
第一部分似乎是将 null 隐式转换为空白字符串。
【问题讨论】:
-
为了避免
null损坏字符串或对象,obj?.ToString() ?? "" -
对于第二行,发生错误是因为您在空字符串引用上调用方法 (.ToString())。这就是您得到异常的原因。
标签: c# string exception null tostring