該用Tryparse了
看到一篇文章“C#判斷字符串是否為數字字符串“
它的地址是:https://www.cnblogs.com/cobblestone/archive/2011/06/21/2086397.html,
作者用兩種方法來判斷字符串是否為數字。其中一種是將字符串進行一次強製轉換,再用try來容錯,成功轉換則證明該字符串是數字,否則就不是!
看到這樣的代碼我是很淡定的,因為這種方法我見得很多,包括我公司現在的項目裏麵還有這樣的代碼,以及我還在一些開源的項目裏麵看到過類似的代碼。但無疑,這種方法是效率很低下的,我很奇怪的是,明明有很好用的TryParse為什麼舍充不用呢!
同樣,判斷字符串是否為空明明有string.IsNullOrEmpty方法去判斷,而很多代碼中還是喜歡通過if(符串==""||符串==null)來判斷!
據本人估計,這兩種方法都是.net 2.0中出來的新方法,估計很多同學還在受1.1的影響,看來知識的更新很重要!細節也很重要。
那麼tryparse該怎麼用呢?
Convert.ToInt32 與 int.Parse 較為類似,實際上 Convert.ToInt32 內部調用了 int.Parse:
- Convert.ToInt32 參數為 null 時,返回 0;
- int.Parse 參數為 null 時,拋出異常。
- Convert.ToInt32 參數為 "" 時,拋出異常;
- int.Parse 參數為 "" 時,拋出異常。
- Convert.ToInt32 可以轉換的類型較多;
- int.Parse 隻能轉換數字類型的字符串。
int.TryParse 與 int.Parse 又較為類似,但它不會產生異常,轉換成功返回 true,轉換失敗返回 false。最後一個參數為輸出值,如果轉換失敗,輸出值為 0。
int m;
if(int.TryParse("2"),out m)
{
...
}
返回true ,運行{}內,並給m賦值為2;
if(int.TryParse("ddd"),out m)
{
...
}
返回false,不運行if{}內,並給m賦值為0
參考博客:https://www.cnblogs.com/hnvvv/archive/2011/06/22/2086638.html
最後更新:2017-04-02 22:15:58