C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的區別

conclusion

  • int.TryParse 與 int.Parse類似 同樣不能轉換double類型 不能轉換null值等, 但是TryParse不拋出異常而是返回true Or false 告知結果,使得程序能繼續運行。 Parse拋出異常 使得程序無法繼續運行。
  • Convert.ToInt32與int強轉類似 只是Convert會進行四捨五入,而int直接截斷取值。

    詳細的 唯有官方看吧 api文檔

test

  • 轉換null
int c = int.Parse(null);
//結果:拋出異常 轉換對象不能爲NULL 無法繼續運行。
int b; bool value = int.TryParse(null, out b); 
//結果: value爲false b爲0 。
int a = Convert.ToInt32(null); 
//結果:a 爲 0。

int d=(int)null //語法錯誤GG
  • 轉換double類型
double value = 1.232d;

int c = int.Parse(value.ToString());
//結果:拋出異常 字符串格式不正確 無法繼續運行
int a = Convert.ToInt32(value);
//結果:a=1 
int d = (int)value;
//結果:d=1
 int b;
 bool outcome = int.TryParse(value.ToString(), out b);
 //結果:outcome=false b=0
  • 轉換double類型
double value = 1.632d; //若四捨五入 取整爲2
int a = Convert.ToInt32(value);
//結果:a=2 說明有進行四捨五入
int d = (int)value;
//結果:d=1 說明沒有進行四捨五入 只是截斷值來取整
  • 轉換int類型
double value = 45;
int a = Convert.ToInt32(value);
int d = (int)value;
int b;
bool outcome = int.TryParse(value.ToString(), out b);
//outcome=true 
int c = int.Parse(value.ToString());
//a b c d 均等於45
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章