• Difference Between Int32.Parse(), Convert.ToInt32(), and Int32.TryParse()


    Int32.parse(string)

    Int32.Parse (string s) method converts the string representation of a number to its 32-bit signed integer equivalent. When s is a null reference, it will throw ArgumentNullException. If s is other than integer value, it will throw FormatException. When s represents a number less than MinValue or greater than MaxValue, it will throw OverflowException. For example:

    string s1 = "1234"; 
    string s2 = "1234.65"; 
    string s3 = null; 
    string s4 = "123456789123456789123456789123456789123456789"; 
    string s5 ="abcde";
    string s6 ="abc1001"
    string s7 ="-456789"
    string s8 ="-78965.1234"
    string s9 ="";
    int result; bool success; result = Int32.Parse(s1); //-- 1234 result = Int32.Parse(s2); //-- FormatException result = Int32.Parse(s3); //-- ArgumentNullException result = Int32.Parse(s4); //-- OverflowException
    result = Int32.Pars(s5);//--Input string was not in a correct format.
    result =Int32.Pars(s6); //--Input string was not in a correct format.
    result= Int32.Pars(s7);//-- -456789
    result= Int32.Pars(s8);//--Input string was not in a correct format.
    result=Int32.Pars(s9);//--Input string was not in a correct format.

    Convert.ToInt32(string)

    Convert.ToInt32(string s) method converts the specified string representation of 32-bit signed integer equivalent. This calls in turn Int32.Parse () method. When s is a null reference, it will return 0 rather than throw ArgumentNullException. If s is other than integer value, it will throw FormatException. When s represents a number less than MinValue or greater than MaxValue, it will throw OverflowException. For example:

    result = Convert.ToInt32(s1); //-- 1234 
    result = Convert.ToInt32(s2); //-- FormatException 
    result = Convert.ToInt32(s3); //-- 0 
    result = Convert.ToInt32(s4); //-- Value was either too large or too small for an Int32. 
    result = Convert.ToInt32(s5);//--Input string was not in a correct format.
    result = Convert.ToInt32(s6);//--Input string was not in a correct format.
    result = Convert.ToInt32(s7);//-- -456789


    result = Convert.ToInt32(s8);//--Input string was not in a correct format.


    result = Convert.ToInt32(s9);//--Input string was not in a correct format.




    Int32.TryParse(string, out int)

    Int32.Parse(string, out int) method converts the specified string representation of 32-bit signed integer equivalent to out variable, and returns true if it is parsed successfully, false otherwise. This method is available in C# 2.0. When s is a null reference, it will return 0 rather than throw ArgumentNullException. If s is other than an integer value, the out variable will have 0 rather than FormatException. When s represents a number less than MinValue or greater than MaxValue, the out variable will have 0 rather than OverflowException. For example:

     success = Int32.TryParse(s1, out result); //-- success => true; result => 1234 
     success = Int32.TryParse(s2, out result); //-- success => false; result => 0 
     success = Int32.TryParse(s3, out result); //-- success => false; result => 0 
     success = Int32.TryParse(s4, out result); //-- success => false; result => 0 
    success = Int32.TryParse(s5, out result); //-- success => false; result => 0
    success = Int32.TryParse(s6, out result); //-- success => false; result => 0
    success = Int32.TryParse(s7, out result); //-- success => true; result => 456789
    success = Int32.TryParse(s8, out result); //-- success => false; result => 0
    success = Int32.TryParse(s9, out result); //-- success => false; result => 0

    Convert.ToInt32 is better than Int32.Parse since it returns 0 rather than an exception. But again, according to the requirement, this can be used. TryParse will be the best since it always handles exceptions by itself.

  • 相关阅读:
    codeforces 1249D1/D2 Too Many Segments (贪心)
    codeforces 1244E Minimizing Difference (贪心)
    codeforces 1249C1 + 1249C2 (贪心)
    codeforces 1251D Salary Changing (二分+贪心)
    codeforces 1244C (思维 or 扩展欧几里得)
    P1040 加分二叉树(区间DP)
    POJ 1015 Jury Compromise (记录路径的背包问题)
    混合背包(单调队列优化多重背包)(模板)
    GAMES101系列笔记一 图形学概述与线性代数入门
    力扣514 自由之路
  • 原文地址:https://www.cnblogs.com/Jenny90/p/2949626.html
Copyright © 2020-2023  润新知