这个修剪代码会失败吗?

时间:2012-01-21 19:49:02

标签: c#

我最近在代码中遇到异常,因为我正在修剪一个空字符串。 我用以下内容替换它:

  SomeValue = (SomeString ?? "").Trim();

此代码可能会失败吗?

感谢。

注意:我知道我可以添加一个try / catch;我只是想在不使用try / catch的情况下使这一行防故障。

3 个答案:

答案 0 :(得分:5)

这不会失败(即抛出NullReferenceException),假设SomeString确实是string

你可以通过多种方式实现同​​样的目标:

SomeValue = (SomeString == null)?string.Empty:SomeString.Trim();

答案 1 :(得分:2)

这不是我想要的方式,但不,现在不应该失败。

我可能会编写一个扩展方法,在检查null后调用trim。像这样:

public static string NullTrim(this String str) {
    if(str == null) {
        return string.Empty;
    }
    return str.Trim();
}

这允许编译和执行以下所有内容而不会出现错误:

    "".NullTrim();
    "  test  ".NullTrim();
    ((string)null).NullTrim();

答案 2 :(得分:2)

如果由于NullReferenceException而失败,那么现在肯定不会因为失败。至于其他方面,我不能没有背景说。