2

我最近从一位不再在公司工作的作者那里获得了一些代码的所有权。在整个代码中,我发现这一行

if (string.Compare(string.Empty, textbox1.Text, true) == 0)

我不是最先进的 C# 程序员,但在我看来,这在功能上与

if (textbox1.Text == "")

是否存在第一行会捕获第二行不会捕获的边缘情况?

4

2 回答 2

7

实际上,您应该String.IsNullOrEmpty(textbox1.Text)改用。

正如评论中所指出的,String.IsNullOrWhitespace它特别有用,因为您正在使用 GUI 控件,这些控件通常可能只包含空格,而不是实际上是“空”字符串。

于 2013-11-04T21:14:32.457 回答
6

它正在比较字符串忽略大小写,但这是一种不好的做法。String.Equals有一个用于比较字符串忽略大小写的重载。

要检查字符串是否由空字符串组成,String.IsNullOrEmpty应该使用,如果您使用 .Net 框架 4.0 或更高版本并且您想将空间视为空字符串,那么您可以使用string.IsNullOrWhiteSpace.

如果您只想将值与空字符串进行比较,那么textbox1.Text == ""ortextbox1.Text == string.Empty就足够了。

于 2013-11-04T21:14:39.157 回答