Click here to Skip to main content
14,924,621 members
Articles / Programming Languages / C#
Article
Posted 27 Jan 2009

Tagged as

Stats

233.8K views
30 bookmarked

Difference Between Int32.Parse(), Convert.ToInt32(), and Int32.TryParse()

Rate me:
Please Sign up or sign in to vote.
4.14/5 (44 votes)
27 Jan 2009CPOL1 min read
Difference between Int32.Parse(), Convert.ToInt32(), and Int32.TryParse()

Introduction

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:

C#
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:

C#
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:

C#
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.

History

  • 27th January, 2009: Initial post

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Alfredo_Fernandez
Architect AgileWare
Brazil Brazil
15 years of software development

Comments and Discussions

 
GeneralMy vote of 2 Pin
silverghost00710-May-14 18:09
Membersilverghost00710-May-14 18:09 
QuestionMessage Closed Pin
27-Sep-13 17:12
MemberMember 1024450327-Sep-13 17:12 
AnswerRe: Benchmarks on Int.Parse(), Convert.ToInt32(), Int.TryParse() Pin
Alfredo_Fernandez7-Apr-16 9:10
MemberAlfredo_Fernandez7-Apr-16 9:10 
GeneralMy vote of 5 Pin
desenvolvedor8224-Jan-13 17:40
Memberdesenvolvedor8224-Jan-13 17:40 
GeneralMy vote of 5 Pin
ssa201018-Jul-12 20:27
Memberssa201018-Jul-12 20:27 
SuggestionNice Work AgilWare Pin
Thilina Chandima26-Mar-12 3:30
MemberThilina Chandima26-Mar-12 3:30 
GeneralRe: Nice Work AgilWare Pin
Not Active27-Mar-12 16:08
mentorNot Active27-Mar-12 16:08 
Thilina Chandima wrote:
there is miner spelling mistake

You mean like this? minor not miner

Failure is not an option; it's the default selection.

GeneralMy vote of 2 Pin
Amit Narula30-Nov-09 5:39
MemberAmit Narula30-Nov-09 5:39 
GeneralMy vote of 2 Pin
Stinky Boat18-Nov-09 13:20
MemberStinky Boat18-Nov-09 13:20 
GeneralExceptions are not necessarily bad Pin
Omer Mor28-Jan-09 6:22
MemberOmer Mor28-Jan-09 6:22 
GeneralMy vote of 2 Pin
Omer Mor28-Jan-09 6:16
MemberOmer Mor28-Jan-09 6:16 
GeneralUmm... Pin
PIEBALDconsult27-Jan-09 12:58
professionalPIEBALDconsult27-Jan-09 12:58 
GeneralSome comments Pin
Colin Angus Mackay27-Jan-09 6:27
MemberColin Angus Mackay27-Jan-09 6:27 
GeneralRe: Some comments Pin
supercat927-Jan-09 8:05
Membersupercat927-Jan-09 8:05 
GeneralRe: Some comments [modified] Pin
Colin Angus Mackay27-Jan-09 8:30
MemberColin Angus Mackay27-Jan-09 8:30 
GeneralRe: Some comments Pin
supercat927-Jan-09 9:26
Membersupercat927-Jan-09 9:26 
GeneralRe: Some comments Pin
Colin Angus Mackay27-Jan-09 11:27
MemberColin Angus Mackay27-Jan-09 11:27 
SuggestionRe: Some comments Pin
David A. Gray4-Sep-15 17:29
MemberDavid A. Gray4-Sep-15 17:29 
GeneralRe: Some comments Pin
Alfredo_Fernandez7-Apr-16 9:05
MemberAlfredo_Fernandez7-Apr-16 9:05 
GeneralRe: Some comments Pin
David A. Gray7-Apr-16 11:57
MemberDavid A. Gray7-Apr-16 11:57 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.