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