2011-06-26 44 views
7

如果string.Empty != null为什么string.IsNullOrEmpty()被创建?为什么string.IsNullOrEmpty()被创建?

我只想说:
如果nullstring.Empty是彼此不同的。

  • 为什么string.IsNull();string.IsEmpty();单独的方法不存在。
  • 为什么组合方法string.IsNullOrEmpty()存在?
+3

因为检查字符串是否包含至少一个字符是最常见的事情之一,所以.NET开发人员给了我们很好的捷径。 –

+0

我不喜欢我的格式:(任何人都可以为我重新格式化它... –

+1

重新格式化到底是什么?看起来对我很好。 –

回答

16
  • string.IsNull不存在,因为你只是检查null参考是
  • string.IsEmpty不存在,因为你可以很容易的平等“”或为0
  • 的长度比较
  • string.IsNullOrEmpty存在,因为它更简单写一个方法调用不是使用

    if (text == null || text.Length == 0) 
    

    (或倒数,当然)。

每个单独的检查都可以简单地自行完成,但将两者结合起来很方便。

+0

aahhhh,我不知道为什么这些愚蠢的问题出现在我的脑海里... :(thanx @Jon为你的答案; –

+3

不要忘了.NET 4增加了IsNullOrWhitespace,而且这个检查不止是单行代码 – Euphoric

+0

但是什么时候需要这样的函数呢?我很少遇到想要遇到'null'和'''''同样的方式。遇到'null'通常意味着编程错误,并导致'ArgumentNullException'和''''可能是不好的用户输入,这需要完全不同的行为,即使它是一个bug它应该抛出像'ArgumentException'这样的问题 – CodesInChaos

1

它用于检查输入字符串是否有效。 (例如,不是空的而不是空的)。 所以你不想在每次你想确保这样做的时候同时做两次检查,所以这就是为什么它被制定的原因。 如果您想检查其中的一个,您可以使用== null== ""进行比较。

相关问题