由於總忘記,先寫一下。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
Console.WriteLine( "輸出轉換空結果 ={0}" , Convert.ToInt32( "" )); //Convert.ToInt32是不允許轉換“”空值的,會報錯 Console.WriteLine( "輸出轉換null結果={0}" , Convert.ToInt32( null )); //Convert.ToInt32允許傳入null引數轉換,結果為0 Console.WriteLine( "輸出轉換字母非數字結果={0}" , Convert.ToInt32( "12" )); //正常操作 Console.WriteLine( "輸出轉換字母非數字結果={0}" , Convert.ToInt32( "12ab" )); //轉換非數字,則直接報錯 var aa= "10" ; int bb; int .TryParse(aa, out bb); Console.WriteLine(bb); //結果顯示10,執行正常 aa= "abc" ; //特殊字元等非正常數字,或者12aa型別,結果都是0 //顯示0,執行正常 var aa = ( int .MaxValue+1).ToString(); //超出範圍的時候,程式會順利執行,但是是有錯誤產生的。而且,顯示的值是上一次的運算結果,即之前的一次計算結果是0則是0,是1則是1。 //所以如果存在溢位這種情況,還是得仔細辨別一下。 //錯誤 1 在 checked 模式下,運算在編譯時溢位 Projects\1111\getimage\Program.cs |
一般涉及到int型別轉換,個人感覺還是使用int.TrayParse方式,程式碼比較簡介,一般不會出現報錯的情況。(也可能是報錯的,一般這種轉換值,自己使用的時候,達不到溢位的值)