代码之家  ›  专栏  ›  技术社区  ›  David Neale

String.IsNullOrEmpty运算符是否有大小写?

c#
  •  7
  • David Neale  · 技术社区  · 15 年前

    String.IsNullOrEmpty() 似乎是一个非常好用的方法,我发现自己希望有一些速记。像这样的 ??? 因为它可以在与null coalesce操作符类似的上下文中使用,但是可以扩展以测试空字符串和null字符串。即。

     string text = something.SomeText ??? "Not provided";
    

    你对此有何看法?它会不会不必要地膨胀语言?它是否会为其他中级操作打开闸门,允许它们与编译器进行如此深度的集成?或者是对语言的有益补充。

    2 回复  |  直到 15 年前
        1
  •  19
  •   Tomas Aschan    15 年前

    菲尔·哈克 blogged about this string 你可以这样做

    var text = someString.AsNullIfEmpty() ?? "Not provided.";
    

    扩展方法非常简单:

    public static string AsNullIfEmpty(this string str)
    {
        return !string.IsNullOrEmpty(str) ? str : null;
    }
    

    他还建议使用一个检查空格的版本,而不是用 string.IsNullOrWhitespace() IEnumerable<T> 接口。

    他还谈到引入新的运营商,如 ???

        2
  •  6
  •   LBushkin    15 年前

    菲尔·哈克在他的博客上谈到了这个具体的操作。你应该看看他的文章 Null Or Empty Coalescing

    特殊用途操作员,如 ??? 是个滑坡。为什么不停下来-为什么不介绍一个 “操作员: ???? . 实际上,菲尔在他的文章中谈到了这一点。他得出的总体结论是,这样的运算符会让人更困惑,而不是更有用。