这个微调代码会失败吗
本文关键字:失败 代码 | 更新日期: 2023-09-27 18:20:55
我最近在代码中遇到了一个异常,因为我正在修剪一个空字符串。我用以下内容替换了它:
SomeValue = (SomeString ?? "").Trim();
这个代码会失败吗?
谢谢。
注意:我知道我可以添加一个try/catch;我只是想在不使用try/catch的情况下使这条线路不失败。
假设SomeString
确实是string
,这不会失败(即抛出NullReferenceException
)。
你可以通过多种方式实现同样的目标:
SomeValue = (SomeString == null)?string.Empty:SomeString.Trim();
这不是我应该做的方式,但不,现在不应该失败了。
我可能会编写一个扩展方法,在检查null后调用trim。类似这样的东西:
public static string NullTrim(this String str) {
if(str == null) {
return string.Empty;
}
return str.Trim();
}
这允许以下所有内容在没有错误的情况下编译和执行:
"".NullTrim();
" test ".NullTrim();
((string)null).NullTrim();
如果它因为NullReferenceException
而失败,那么现在它肯定不会因此而失败。至于其余的,我不能说没有上下文。