是否存在检查字符串是否为空的边缘情况?

Bri*_*een 2 c#

我最近从一个不再与公司合作的作者获得了一些代码的所有权.在整个代码中,我找到了这一行

if (string.Compare(string.Empty, textbox1.Text, true) == 0)
Run Code Online (Sandbox Code Playgroud)

我不是最先进的C#程序员,但对我来说,功能上看起来和我一样

if (textbox1.Text == "")
Run Code Online (Sandbox Code Playgroud)

是否有任何边缘情况,第一行将捕获第二行不会?

dca*_*tro 7

实际上,你应该使用String.IsNullOrEmpty(textbox1.Text).

正如评论中所指出的那样,String.IsNullOrWhitespace因为您正在使用GUI控件(通常可能只包含空格,而不是实际上是一个"空"字符串),因此特别有用.


Hab*_*bib 6

它是比较字符串忽略的情况,但它是一种不好的方式.String.Equals有一个重载比较字符串与忽略大小写.

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

如果你只是想比较空字符串值,然后textbox1.Text == ""或者textbox1.Text == string.Empty是不够的.