(int)Something;
int.Parse(Something);
Convert.ToInt32(Something);
1) that is a cast
2) Parsing taking in a string and attempts to convert it to a type. —when string is null refence,it will throw ArgumentNullException.if string is other than integer value ,it will throw FormatException.if reperesents a number less than Min or maxvalue than will throw overflowexception.
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
3) Convert accepts an object as its paramerter —- One major difference is that Convert does not throw a ArgumentNullException while Parse does. Your cast would also throw an exception if it null. You can get around that by using (int?)Something;
result = Convert.ToInt32(s1); //– 1234
result = Convert.ToInt32(s2); //– FormatException
result = Convert.ToInt32(s3); //– 0
result = Convert.ToInt32(s4); //– OverflowException
4)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.
One major difference is that Convert does not throw a ArgumentNullException while Parse does. Your cast would also throw an exception if it null. You can get around that by using
(int?)Something;