有很多次,我有一個輸入文本,c#空字符串 - > null?
,如果它爲空(用戶didnt鍵入文本) - 我要發送到DB查詢「空」
和不String.Empty.
(或 「」)
,所以我覺得我自己這個做了很多:
var mySqlValue = string.IsNullOrEmpty(tbCustomerId.Text)?null:tbCustomerId.Text;
這似乎醜陋的我。
.NET提供了許多其他的解決方案,爲相反的情況:
string.IsNullOrEmpty
string.IsNullOrWhiteSpace
myProblemVal ?? myDefultVal
我知道這可以通過擴展方法來解決 - 我知道該怎麼做..
但有什麼更好的?
是否有智能代碼:「if its empty -> null
」。
還存在以下問題:如果'.Text'是一個屬性(即對get訪問器的調用),則第一次調用getter時,可能會返回一個長字符串,例如「John Doe」 '。我們可以評估三元「:」條件操作符的最後一個「組件」。但是這會再次調用'Text' getter,這次它可能會返回''「'。所以在priciple你必須採取'文本'的局部變量副本。當然,如果您使用擴展方法,這不是必需的。 – 2012-12-07 22:18:19
如果使用擴展方法,則可以在檢查之前先「修剪()」字符串,這在單個表達式中很難實現。 – toddmo 2015-11-04 15:43:54