我最近從一位作者身上取得了一些代碼的所有權,這些代碼已不在公司。 整個代碼我發現這條線是否存在檢查字符串是否爲空的邊界情況?
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.Equals
有重載比較字符串與忽略大小寫。
若要檢查字符串是否包含空字符串,應使用String.IsNullOrEmpty
,如果您使用的是.Net framework 4.0或更高版本,並且您希望將空格視爲空字符串,則可以使用string.IsNullOrWhiteSpace
。
如果您只想將該值與空字符串進行比較,那麼textbox1.Text == ""
或textbox1.Text == string.Empty
就足夠了。
實際上,您應該使用String.IsNullOrEmpty(textbox1.Text)
來代替。
正如評論中指出的那樣,String.IsNullOrWhitespace
特別有用,因爲您正在使用GUI控件,GUI控件通常可能只包含空格,而實際上並不是「空」字符串。
同時String.IsNullOrWhitespace(textbox1.Text)將處理充滿空格/製表符的時間。 – Matt
您應該向OP指出他將空字符串與null混淆。 –
對於這種情況,不,您可以(也應該)使用第二種形式。此外,您沒有檢查空值,只檢查空字符串 –