What is the difference between Parse() and TryParse()?
int number = int.Parse(textBoxNumber.Text);
// The Try-Parse Method
int.TryParse(textBoxNumber.Text, out number);
Is there some form of error-checking like a Try-Catch Block?
What is the difference between Parse() and TryParse()?
int number = int.Parse(textBoxNumber.Text);
// The Try-Parse Method
int.TryParse(textBoxNumber.Text, out number);
Is there some form of error-checking like a Try-Catch Block?
Parse
throws an exception if it cannot parse the value, whereasTryParse
returns abool
indicating whether it succeeded.TryParse
does not justtry
/catch
internally - the whole point of it is that it is implemented without exceptions so that it is fast. In fact the way it is most likely implemented is that internally theParse
method will callTryParse
and then throw an exception if it returnsfalse
.In a nutshell, use
Parse
if you are sure the value will be valid; otherwise useTryParse
.TryParse does not return the value, it returns a status code to indicate whether the parse succeeded (and doesn't throw an exception).
TryParse and the Exception Tax
Parse throws an exception if the conversion from a string to the specified datatype fails, whereas TryParse explicitly avoids throwing an exception.
I know its a very old post but thought of sharing few more details on Parse vs TryParse.
I had a scenario where DateTime needs to be converted to String and if datevalue null or string.empty we were facing an exception. In order to overcome this, we have replaced Parse with TryParse and will get default date.
Old Code:
New Code:
Have to declare another variable and used as Out for TryParse.
For the record, I am testing two codes: That simply try to convert from a string to a number and if it fail then assign number to zero.
and:
For c#, the best option is to use tryparse because try&Catch alternative thrown the exception
That it is painful slow and undesirable, however, the code does not stop unless Debug's exception are settled for stop with it.
If the string can not be converted to an integer, then
int.Parse()
will throw an exceptionint.TryParse()
will return false (but not throw an exception)