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.