我總是看到一個字符串(查詢字符串值通常)是否有一個值,但首先我必須檢查它不是什麼第一,所以我最終得到2如果然後語句 - 我在這裏丟失somethign - 必須有一個更好的方式來做到這一點:檢查字符串爲空,然後在1行中確定值?
If Not String.IsNullOrEmpty(myString) Then
If CBool(myString) Then
//code
End If
End If
我總是看到一個字符串(查詢字符串值通常)是否有一個值,但首先我必須檢查它不是什麼第一,所以我最終得到2如果然後語句 - 我在這裏丟失somethign - 必須有一個更好的方式來做到這一點:檢查字符串爲空,然後在1行中確定值?
If Not String.IsNullOrEmpty(myString) Then
If CBool(myString) Then
//code
End If
End If
在VB.Net中,並沒有短路,但AndAlso呢。
(同爲Or和OrElse運算)
所以,你的代碼應該看起來像
If Not String.IsNullOrEmpty(myString) AndAlso CBool(myString) Then
....
End If
我知道我錯過了一些簡單的東西 - 謝謝! – Slee 2008-12-23 23:03:55
哇這麼多年,我知道我錯過了這個! – superartsy 2011-11-04 13:19:45
布爾邏輯「和」運營商在您所選擇的語言?條件通常會短路,所以如果第一個失敗,第二個不會運行/錯誤。
你想檢查vb.net短路... vbscript沒有。 (巨大的煩惱) – alumb 2008-12-23 22:43:45
FYI這種類型的代碼完美適合作爲一種 「擴展方法」。簡而言之,這意味着您可以使用提供自己的代碼的方法來擴展字符串。
查看它:)
並且(如上所述)是最通用的答案。但是,你也可以使用各種方法的TryParse,這將使這樣的代碼:
Dim b as Boolean
If Boolean.TryParse(myString, b) AndAlso b Then
End If
獎金,它會從出現FormatException當有人在你的查詢字符串「嗒嗒」將拯救你。
使用,如果使用.NET 2.0或更高版本的下列內容:
String.IsNullOrEmpty(thestringobject)
的值爲true或false,具體。 我通常在工具類中創建另一個函數來檢查修剪/長度,以便知道字符串對象是否爲空,空白或一堆空白。
只是建議,您應該使用Boolean.TryParse檢查有效的字符串/布爾轉換,然後使用Boolean.Parse實際解析出來。 爲了適應.Net,最好開始使用.Net方法而不是Visual Basic傳統的「助手」。 – 2008-12-24 02:55:04
問題是我得到一個無效的轉換異常,因爲當應用Cbool時,myString沒有任何作用,這裏是錯誤:>從字符串「」轉換爲 >'Boolean'類型的轉換無效。 – Slee 2008-12-23 22:47:51