[英]String.Empty, null, Length, or String.IsEmptyOrNull?
哪种方式确实是检查空字符串的最快方法,并且有任何特定情况需要任何特定的。
1. String.IsNullOrEmpty()
2. str == null
3. str == null || str == String.Empty
4. str == null || str == ""
5. str == null || str.length == 0
使用选项1。
如果您特别想检查null
或空字符串,那么没有理由使用string.IsNullOrEmpty
以外的任何内容。 这是在.NET中这样做的规范方式,并且性能上的任何差异几乎肯定都可以忽略不计。
这是过早优化的教科书范例; 通过各种方式,编写有效的代码,但不要浪费开发时间,因为没有合理的性能提升。 请记住,你的时间作为一个开发者通常比CPU的时间更有价值。
Quoth Donald Knuth:
我们应该忘记小的效率,大约97%的时间说:过早的优化是所有邪恶的根源。
如果您的应用程序真正需要这种级别的微优化,那么您可能不应该使用.NET。
你也关心空白吗?
如果空格有效,请使用String.IsNullOrEmpty
,否则使用String.IsNullOrWhiteSpace
(在.Net 4.0或更高版本中)。 后者相当于String.IsNullOrEmpty(value) || value.Trim().Length == 0;
,但性能更高 String.IsNullOrEmpty(value) || value.Trim().Length == 0;
请参阅http://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace.aspx
在这个网站上找到了一些关于不同方法的统计数据: http : //www.dotnetperls.com/empty-string
速度的差异将是不明显的。
正确的方法是1,因为它是最安全和最好的可读性。
String.IsNullOrEmpty()
具有非常高的可读性,可以按预期工作,很乐意坚持下去。
你真的有一个边缘情况下它的不足然后请添加相同的问题,这将使它更相关。
使用
String.IsNullOrEmpty()
这是.NET的最佳方式。
我个人总是使用String.IsNullOrEmpty()
。 我不认为他们做任何特别的事情,除了检查它是否为null
或空,所以它不应该比手写支票慢。
此外,有时你可能会匆忙,并在最后意外地将null
检查结果,得到一个令人讨厌的惊喜。 :)
它更好的方式,并建议使用String.IsNullOrEmpty最快速地检查null或空字符串。 因为它在String中的内置方法。
在您的样本中,解决方案2是最快的。 但它是一个与其他解决方案不同的解决方案,因为它不会检查字符串是否为空。
否则,假设您要检查字符串是空还是空,则解决方案5是最快的。 String.IsNullOrEmpty()与解决方案5完全相同,但添加了一个函数调用(如果它在运行时没有内联)。 不过,我建议第一个解决方案:
1 /性能损失可以忽略不计
2 /它更容易阅读
3 /它是一种内置方法,因此它具有前瞻性
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.