在.NET中,String.Empty和之间的区别是什么"",它们是可互换的,还是存在一些基本的参考或本地化问题,这些问题String.Empty将确保不是问题?
哪个更有效的编译器和检查字符串是否为空的最佳实践?
此外,答案是否取决于语言?
我有一个字符串,周围可能有空格字符,我想检查它是否基本上是空的.
有很多方法可以做到这一点:
1 if (myString.Trim().Length == 0)
2 if (myString.Trim() == "")
3 if (myString.Trim().Equals(""))
4 if (myString.Trim() == String.Empty)
5 if (myString.Trim().Equals(String.Empty))
Run Code Online (Sandbox Code Playgroud)
我知道这通常是过早优化的明显案例,但我很好奇,并且有可能做到这一点足以产生性能影响.
那么哪一个是最有效的方法呢?
有没有更好的方法我没想过?
编辑:此问题的访问者注意事项:
对这个问题进行了一些非常详细的调查 - 特别是来自Andy和Jon Skeet.
如果你在搜索某些内容时偶然发现了这个问题,那么至少阅读Andy和Jon的帖子是非常值得的.
似乎有一些非常有效的方法,最有效的方法取决于我需要处理的字符串的内容.
如果我无法预测字符串(在我的情况下我不能预测),Jon的IsEmptyOrWhiteSpace方法似乎通常更快.
谢谢大家的意见.我将选择安迪的答案作为"正确"的答案仅仅是因为他应该为他所付出的努力赢得声誉,而乔恩已经拥有了十亿美元的声誉.
我想检查变量字符串是否data包含空字符串.
哪个更有效率,data.Length==0还是data==string.Empty?
我忘了说,data已经检查过并且保证不会null.