当我尝试访问存储在对象中的值时,当值为null时,它会显示空引用错误。如何检查空值???
str = "<html>" + objName.Name + "</html>"
先谢谢
答案 0 :(得分:4)
怎么样:
if(objName != null)
{
str = "<html>" + objName.Name + "</html>"
}
答案 1 :(得分:4)
类似的东西:
if(objName != null && !string.IsNullOrEmpty(objName.Name))
{
str = "<html>" + objName.Name + "</html>"
}
答案 2 :(得分:1)
检查以下对象的null:
str="<html>"+ objName != null ? objName.Name : string.empty + "</html>"
答案 3 :(得分:0)
简单案例:
str = "<html>" + (objName != null ? objName.Name : "") + "</html>";
性能更高:
if (objName == null)
str = "<html></html>";
else
String.Concat("<html">, objName.Name, "</html>");
if (objName == null)
str = "<html></html>";
else
String.Concat("<html">, objName.Name, "</html>");
如果你这么做很多,可以考虑使用StringBuilder,它可能看起来像:
var html = new StringBuilder();
html.Append("<html>");
html.Append(objName != null ? objName.Name : "");
...
html.Append("</html>";
如果要将多个标签一起添加,而不是使用StringBuilder,则需要执行以下操作:
var html = new StringBuilder();
html.Append("<html>");
html.Append(objName != null ? objName.Name : "");
...
html.Append("</html>";
...你把一个+ =用新的部分和新的部分汇总。另请注意,“”实际上与String.Empty相同。使用“”而不是String.Empty可能会有很大帮助,直到您学会使代码更短且更易读。
代码:
str = "<html>" + (objName != null ? objName.Name : "") + "</html>";
str += "<script>" + (objName2 != null ? objName2.Name : "") + "</script>";
str = "<html>" + (objName != null ? objName.Name : "") + "</html>";
str += "<script>" + (objName2 != null ? objName2.Name : "") + "</script>";
......这将使这更容易弄明白。你应该尝试使用与此几乎相同的StringBuilder aproach。总的来说应该让它变得更容易,我保证:)
所以这里有一些问题:
string str;
如果objTest为null,则会失败,并生成
str = "<body lang=EN-US style='tab-interval:.5in'>";
str += "<div class=Section1>";
str += "<img img width=100 height=50 id='myImg' src='C:/test.jpg'>";
str += "<p style='font-weight:bold; color:green;'>";
str += "<u> Test Name </u></p>" + objTest.name.ToString() + "<br/>";
str += objname.name.ToString() != null ? string.Join(", ", objname.name.ToArray()) : String.Empty;
str += "</body> </html> ";
意义不大。
您可能打算做这样的事情(对于你的objTest和objname):
str = "<body lang=EN-US style='tab-interval:.5in'>";
str += "<div class=Section1>";
str += "<img img width=100 height=50 id='myImg' src='C:/test.jpg'>";
str += "<p style='font-weight:bold; color:green;'>";
str += "<u> Test Name </u></p>" + objTest.name.ToString() + "<br/>";
str += objname.name.ToString() != null ? string.Join(", ", objname.name.ToArray()) : String.Empty;
str += "</body> </html> ";
`... + objTest.name.ToString() + ...`
这可以保护objname和objname.name。
更好的是:
`objname.name.ToString() != null`
str += "<u> Test Name </u></p>" + (objname != null && objname.name != null ? objname.name.toString() : "") + "<br/>";