程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 字符串轉換成整型,到底使用int.Parse,Convert.ToInt32還是int.TryParse?,convert.toint32

字符串轉換成整型,到底使用int.Parse,Convert.ToInt32還是int.TryParse?,convert.toint32

編輯:C#入門知識

字符串轉換成整型,到底使用int.Parse,Convert.ToInt32還是int.TryParse?,convert.toint32


當我們想把一個字符串轉換成整型int的時候,我們可能會想到如下三種方式:int.Parse,Convert.ToInt32和int.TryParse。到底使用哪種方式呢?

 

先來考慮string的可能性,大致有三種可能:
1、為null
2、不是整型,比如是字符串
3、超出整型的范圍

 

基於string的三種可能性,分別嘗試。

 

□ 使用int.Parse

 

string str = null;
int result;
result = int.Parse(str);

以上,拋出ArgumentNullException異常。

 

string str = "hello";
int result;
result = int.Parse(str);

以上,拋出FormatException異常。

 

string str = "90909809099090909900900909090909";
int result;
result = int.Parse(str);

以上,拋出OverflowException異常。

 

□ 使用Convert.ToInt32

 

        static void Main(string[] args)
        {
            string str = null;
            int result;
            result = Convert.ToInt32(str);
            Console.WriteLine(result);
            Console.ReadKey();
        }

以上,顯示0,即當轉換失敗,顯示int類型的默認值,不會拋出ArgumentNullException異常。

 

        static void Main(string[] args)
        {
            string str = "hello";
            int result;
            result = Convert.ToInt32(str);
            Console.WriteLine(result);
            Console.ReadKey();
        }

以上,拋出FormatException異常。

 

        static void Main(string[] args)
        {
            string str = "90909809099090909900900909090909";
            int result;
            result = Convert.ToInt32(str);
            Console.WriteLine(result);
            Console.ReadKey();
        }

以上,拋出OverflowException異常。

 

□ 使用int.TryParse

 

        static void Main(string[] args)
        {
            string str = null;
            int result;
            if (int.TryParse(str, out result))
            {
                Console.WriteLine(result);
            }
            else
            {
                Console.WriteLine("轉換失敗");
            }
            
            Console.ReadKey();
        }

結果:轉換失敗

 

總結:當需要捕獲具體的轉換異常的時候,使用int.Parse或Convert.ToInt32,而當string為null,Convert.ToInt32不會拋出ArgumentNullException異常;當只關注是否轉換成功,推薦使用int.TryParse。當然,以上也同樣適合其它值類型轉換,比如decimal, 也有decimal.Parse,Convert.ToDecimal和decimal.TryParse。   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved