Thursday, June 21, 2012

Difference between Convert.ToInt32,Int32.parse,Int32.TryParse



    'input = Int32.Parse(TextBox1.Text)

    'input = Convert.ToInt32(TextBox1.Text)

    If Int32.TryParse(TextBox1.Text, input) = False Then
      MessageBox.Show("Invalid input", "Input Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

Difference between Convert.ToInt32,Int32.parse,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 is a nullreference, it will throw ArgumentNullException. If is other thaninteger value, it will throw FormatException. When represents a number less than MinValue or greater than MaxValue, it will throwOverflowException. 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 stringrepresentation of 32-bit signed integer equivalent. This calls in turnInt32.Parse () method. When is a null reference, it will return 0rather than throw ArgumentNullException. If is other than integervalue, it will throw FormatException. When represents a number less than MinValue or greater than MaxValue, it will throwOverflowException. 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 stringrepresentation 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 is a null reference, it will return rather than throw ArgumentNullException. If is other than an integervalue, the out variable will have rather than FormatException. Whenrepresents a number less than MinValue or greater than MaxValue, theout variable will have 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 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