我不喜歡我每次使用CInt
或Integer.Parse
(我知道的是昂貴的)時間做這樣的事情:如果整數/雙重強制轉換失敗,默認爲0的最佳方法是什麼?
Try
someIntVariable = CInt(someStringVariable)
Catch ex As Exception
someIntVariable = 0
End Try
而且我不喜歡參與Integer.TryParse
的所有代碼行。我想我可以創建一個具有類似的功能:
Function ToInteger(str As String) As Integer
Dim number As Integer
Int32.TryParse(str, number)
Return number
End Function
但不是已經有一個擴展方法或東西內置到.NET可以在一個更優雅的方式做到這一點對我來說(沿行Nullable(Of T).GetValueOrDefault
)?
你可能想看看這個帖子:[Integer.TryParse - 更好的方法?](http://stackoverflow.com/questions/419027/integer-tryparse-a-better-way)。 TryParse不會拋出異常,因此工作速度更快。 – Artemix 2013-05-10 14:46:50
嗯。也許檢查['TryParse']的文檔(http://msdn.microsoft.com/en-us/library/f02979c7.aspx):「* result * ...當此方法返回...如果轉換爲零失敗「 - 這聽起來像它已經是你想要的功能。 ('Double.TryParse'類似地定義爲在失敗時返回零) – 2013-05-10 14:50:20
由於'0'是'Integer'的默認值,因此您可以忽略整個方法中的If/Else'塊,因爲當轉換失敗,'TryCast'將'number'設置爲'0'。 – sloth 2013-05-10 14:51:49