轉載自:http://www.cnblogs.com/marssl/archive/2009/01/16/1376945.html

 

    以前只知道,XXX.Parse(string)只能將string類型轉換為其他類型,而Convert.to...(object)可以轉換的類型較多,沒想到轉換為int型也有那麼多講究..記下一筆.. 

 

Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解釋為將類型轉換為 int,那它們的區別是什麼呢?

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;

(int) 屬 cast 轉換,只能將其他數字類型轉換成 int 類型,它不能轉換字串,比如下例就會失敗:

string v = "1";
int n = (int)v;


arrow
arrow
    全站熱搜

    mming 發表在 痞客邦 留言(0) 人氣()