为什么建议检查字符串长度以确定空虚?

Jam*_*mie 4 c#

通常,人们说最好说s.Length == 0而不是s == "".但似乎这将是一种微观优化,也使得阅读更难.此外,前者相对于后者的一千万,最多可节省60毫秒.

有没有理由让我失踪,例如是否s.Length == 0真的能更好地传达意图?或者需要比较许多字符串是否空洞?

编辑:我知道IsNullOrEmpty,但是当人们回答这个问题时,他们经常提到长度检查比空字符串更好.

编辑2:没有询问这两个案例的最佳方法是IsNullOrEmpty,但我问为什么不可忽视的少数人坚持认为长度检查更优越.我假设他们有充分的理由说出来,并想知道它们是什么.

编辑3:如开头所述,我知道一个比另一个快.问题是,人们推荐它的原因是什么?一些时间表明这并没有导致显着差异.

Joe*_*Joe 7

你是对的,它本质上是一种微观优化.测试长度确实使FxCop/Code Analysis保持安静 - 理由是性能,如MSDN中所述.

至于哪个更具可读性,那是主观的,我相信任何开发人员都会理解.由于它们在语义上是不同的(s.Length == 0如果s为null则抛出,而s == ""不是抛出),可读性不是唯一要考虑的标准.

如果您不确定字符串是否为空,String.IsNullOrEmpty或者String.IsNullOrWhiteSpace可能更具可读性(即表达您的意图).