今天看教程偶然看到int.parse()和int.TryParse()也可以把string轉成int,而且很實用,所以對string轉成int的方法做了總結。
1、(int)是一種類型轉換;當我們觟nt類型到long,float,double,decimal類型,可以使用隱式轉換,但是當我們從long類型到int類型就需要使用顯式轉換,否則會產生編譯錯誤。
2、Convert.ToInt32()是一種類容轉換;但它不限於將字符串轉為int類型,還可以是其它類型的參數。
3、int.Parse()是一種類容轉換;表示將數字內容的字符串轉為int類型。
如果字符串為空,則拋出ArgumentNullException異常;
如果字符串內容不是數字,則拋出FormatException異常;
如果字符串內容所表示數字超出int類型可表示的范圍,則拋出OverflowException異常。
4、int.TryParse與 int.Parse 又較為類似,但它不會產生異常,轉換成功返回 true,轉換失敗返回 false。
最后一個參數為輸出值,如果轉換失敗,輸出值為 0,如果轉換成功,輸出值為轉換后的int值。
比較:
Convert.ToInt32 參數為 null 時,返回 0; int.Parse 參數為 null 時,拋出異常。
Convert.ToInt32 參數為 "" 時,拋出異常; int.Parse 參數為 "" 時,拋出異常。
Convert.ToInt32 可以轉換的類型較多; int.Parse 只能轉換數字類型的字符串。
int.TryParse()在提交web表單中常常要用到,因為提交過來的值都是string如果需要int型的數據可以直接用int.TryParse()轉換且還可以判斷提交過來的數據是不是int型數據。
int i = -1; bool b = int.TryParse(null, out i); 執行完畢后,b等於false,i等於0,而不是等於-1,切記。
int i = -1; bool b = int.TryParse("123", out i);執行完畢后,b等於true,i等於123。