这个微调代码会失败吗

本文关键字:失败 代码 | 更新日期: 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而失败,那么现在它肯定不会因此而失败。至于其余的,我不能说没有上下文。