您能否告訴我TrimNull()是否多餘以及是否應該使用替代方法?通過考慮NULL來修改文本框的值
例如:
string username = UsernameTextBox.Text.TrimNull();
有人告訴我沒有定義或擴展方法。也許有一個我缺少的參考?
UPDATE:
什麼是最readable
方式返回empty string
如果值爲NULL?
您能否告訴我TrimNull()是否多餘以及是否應該使用替代方法?通過考慮NULL來修改文本框的值
例如:
string username = UsernameTextBox.Text.TrimNull();
有人告訴我沒有定義或擴展方法。也許有一個我缺少的參考?
UPDATE:
什麼是最readable
方式返回empty string
如果值爲NULL?
你可以創建自己的擴展,方法爲,如果你喜歡:
public static class StringExtensions
{
public static string TrimNull(this string value)
{
return string.IsNullOrWhiteSpace(value) ? value : value.Trim();
}
}
添加到您的項目,你的代碼將工作。
這只是一種選擇。
您對我在答案中提到的方法有什麼看法? – Lijo 2013-02-21 12:58:37
@Lijo當然,這將工作=)除非永遠不會返回null,如果這是OP想要的,但是誰知道=)如果你總是想要一個非空的字符串,那麼你的答案是有效的。 – 2013-02-21 13:19:58
我通常使用String.IsNullOrWhiteSpace(),像這樣:
string username = (String.IsNullOrWhiteSpace(UsernameTextBox.Text) ?
null : UsernameTextBox.Text.Trim());
這樣一來,如果.Text
屬性爲null,它不會導致異常。
作爲NULL的字符串不是它的值。它的一個狀態。這意味着它沒有被分配一個內存(因爲它是一個引用類型)。假如它會自動得到一個數值型數據類型它woudld被分配一個默認值像INT其0等
ü應使用
if(!String.IsNullOrEmpty(UsernameTextBox.Text))
string username = UsernameTextBox.Text.Trim();
有作爲TrimNull(String)
沒有這樣的功能 - 它不會做任何事情。一個字符串可以是null或非null,它不能包含兩者的混合。如果字符串爲空,則靜態函數TrimNull(myString)
將無法從字符串中「刪除」任何內容。如果它不爲空,則不會刪除NULL
。更糟糕的是,如果TrimNull是一個實例方法myString.TrimNull()
只會導致一個異常,如果myString是NULL
- 因爲你不能在空引用上調用任何方法。
如果你的目標是修剪周圍串空白字符,只需使用myString.Trim()
。
如果你的目標是檢測字符串是否爲空,則使用myString == NULL
如果你的目標是檢測字符串是否爲空或null使用String.IsNullOrEmpty(myString)
如果你的目標是要修剪從數據流尾隨零字符(\0
),嘗試以下方法:
myString.TrimEnd(new char[] { '\0' })
但正如FrédéricHamidi所說,如果您指的是後者,用戶將很難在TextBox中獲取空字符,因此您在處理其輸入時不應該擔心這種情況。
比這更糟糕。如果字符串爲空,則會發生異常,因爲不會有String對象調用TrimNull()方法。 – 2012-04-11 13:38:03
@CharlieKilian正是。我會修改我的答案以反映這一點。 – Alain 2012-04-11 13:38:39
它可能是字符串的擴展。 – 2012-04-11 13:41:19
使用null-coalescing operator在@sixlettervariables提到Negate the null-coalescing operator
string username = (UsernameTextBox.Text ?? String.Empty).Trim();
回答這是什麼功能?沒有爲字符串定義這樣的函數。 – gbianchi 2012-04-11 13:36:34
什麼是TrimNull()..它不是C# – Marshal 2012-04-11 13:36:42
該奇怪的方法應該做什麼?在框架中沒有'TrimNull'。也許有人已經添加了擴展名,並且你錯過了對該dll的引用。但我們怎麼知道? – 2012-04-11 13:37:27