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

C# 是否存在检查字符串是否为空的边缘情况?,c#,C#,我最近从一位不再在公司工作的作者那里获得了一些代码的所有权。 在整个代码中,我找到了这一行 if (string.Compare(string.Empty, textbox1.Text, true) == 0) 我不是最高级的C#程序员,但在我看来,这在功能上与 if (textbox1.Text == "") 是否存在第一行捕捉到第二行捕捉不到的边缘情况?实际上,您应该使用 正如评论中指出的,这一点特别有用,因为您使用的是GUI控件,这些控件通常只包含空格,实际上不是“空”字符串。比较字符

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

if (string.Compare(string.Empty, textbox1.Text, true) == 0)
我不是最高级的C#程序员,但在我看来,这在功能上与

if (textbox1.Text == "")
是否存在第一行捕捉到第二行捕捉不到的边缘情况?

实际上,您应该使用


正如评论中指出的,这一点特别有用,因为您使用的是GUI控件,这些控件通常只包含空格,实际上不是“空”字符串。

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

检查字符串是否由空字符串组成,如果你使用.NETFramework 4或更高,你想把空间看作空字符串,那么你可以使用.<


如果您只想将值与空字符串进行比较,则
textbox1.Text==”
textbox1.Text==string.empty
就足够了

此外,String.IsNullOrWhitespace(textbox1.Text)将处理充满空格/制表符的时间。您应该向OP指出,他将空字符串与null混淆。在这种情况下,不,您可以(也应该)使用第二种形式。此外,您并没有检查null,您只是检查空字符串。问题是-will string。具体来说,无论您是否区分大小写检查空字符串,空字符串都会有不同的行为。我不确定它是否正确,但我很有信心它不会。在空字符串上@neminem,是的,不区分大小写的比较没有任何意义。我只想强调使用
string.Compare
尝试的具体内容。这个问题更具体地针对字符串。比较与其他检查。我不知道为什么前一个家伙在案件中增加了不敏感点。