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";
int result;
bool success;
result = Int32.Parse(s1); //-- 1234
result = Int32.Parse(s2); //-- FormatException
result = Int32.Parse(s3); //-- ArgumentNullException
result = Int32.Parse(s4); //-- OverflowException
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); //-- OverflowException
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
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.
No comments:
Post a Comment