我最近从一位不再在公司工作的作者那里获得了一些代码的所有权。在整个代码中,我发现这一行
if (string.Compare(string.Empty, textbox1.Text, true) == 0)
我不是最先进的 C# 程序员,但在我看来,这在功能上与
if (textbox1.Text == "")
是否存在第一行会捕获第二行不会捕获的边缘情况?
我最近从一位不再在公司工作的作者那里获得了一些代码的所有权。在整个代码中,我发现这一行
if (string.Compare(string.Empty, textbox1.Text, true) == 0)
我不是最先进的 C# 程序员,但在我看来,这在功能上与
if (textbox1.Text == "")
是否存在第一行会捕获第二行不会捕获的边缘情况?
实际上,您应该String.IsNullOrEmpty(textbox1.Text)
改用。
正如评论中所指出的,String.IsNullOrWhitespace
它特别有用,因为您正在使用 GUI 控件,这些控件通常可能只包含空格,而不是实际上是“空”字符串。
它正在比较字符串忽略大小写,但这是一种不好的做法。String.Equals
有一个用于比较字符串忽略大小写的重载。
要检查字符串是否由空字符串组成,String.IsNullOrEmpty
应该使用,如果您使用 .Net 框架 4.0 或更高版本并且您想将空间视为空字符串,那么您可以使用string.IsNullOrWhiteSpace
.
如果您只想将值与空字符串进行比较,那么textbox1.Text == ""
ortextbox1.Text == string.Empty
就足够了。