DEV Community

Cover image for TryParse in C# 🚀- Level up your Code with this Incredible Feature
ByteHide
ByteHide

Posted on

TryParse in C# 🚀- Level up your Code with this Incredible Feature

TryParse in C#: Full Guide

Have you ever wanted to master the TryParse method in C#? You’re in the right place; let’s dive deep into the world of C# parsing.

Understanding TryParse

It turns potential disasters into harmless little mistakes. But what does TryParse do in C# exactly? Let’s see!

TryParse tries to convert a string into a specific data type. Instead of throwing an error when you hand it a strange input (like trying to convert “banana” into a number), it simply says, “Hey, I couldn’t do that!”, providing a false Boolean result and leaving you unharmed. Great, isn’t it?

int result;
bool success = int.TryParse("123", out result);  // success = True, result = 123
success = int.TryParse("banana", out result);    // success = False, result = 0
Enter fullscreen mode Exit fullscreen mode

In this code snippet, we’re politely asking TryParse to convert the strings “123” and “banana” into integers. And as you already guessed, the first attempt works like a charm, but the second attempt flops—because, well, a banana is still a banana and not the number.

C# TryParse Overview

There’s so much more to TryParse than meets the eye. Deep breath; we’re venturing into the exciting realm of parsing various data types! We’ll even venture into the lesser-known territories like decimals, hexes, and enums.

Working with Various Data Types

“But wait,” I hear you ask, “what data types can I TryParse?” Well, brace yourself for some good news! It handles quite a few. Let’s get our hands dirty with some examples.

C# int TryParse

To start with an obvious one, TryParse can translate strings into good old integers. Here, look at this:

int number;
bool success = int.TryParse("456", out number);  // success = True, number = 456
success = int.TryParse("apple", out number);     // success = False, number = 0
Enter fullscreen mode Exit fullscreen mode

As we can see, parsing “456” to an integer is a breeze for TryParse. However, it rightly chokes up on parsing an “apple” into an integer. It’s an apple after all!

C# Integer TryParse

Wondering what’s the difference between int and Integer in C#? Technically, nothing! int is basically an alias for System.Int32. So, Integer.TryParse doesn’t exist in C#. When working with integers, stick to int.TryParse. Crisis averted!

C# DateTime TryParse

What about dates and times? Can TryParse handle them? You bet! Let’s see what happens when we try to parse string as DateTime.

DateTime date;
bool success = DateTime.TryParse("2021-07-22T18:00", out date);  // success = True, date = 22/07/2021 18:00:00
success = DateTime.TryParse("22nd July 2035", out date);         // success = False, date = 01/01/0001 00:00:00
Enter fullscreen mode Exit fullscreen mode

In the first attempt, the appropriately formatted date and time are successfully parsed. But the second attempt? Nope! The formatting here could be ambiguous to TryParse.

C# Enum TryParse

Put your glasses on, folks! Now we’re going into some deep TryParse territory: Enums. Yes, you heard right. Enums!

enum Colors { Red, Green, Blue }

Colors color;
bool success = Enum.TryParse("Green", out color);  // success = True, color = Green
success = Enum.TryParse("Orange", out color);      // success = False, color = Red
bool caseSensitive = Enum.TryParse("green", true, out color); // success = False, color = Green
Enter fullscreen mode Exit fullscreen mode

As you see in our code snippet, parsing “Green” delivers a success. But when we try “Orange”, TryParse draws a blank. And it adheres to case sensitivity too!

C# Double TryParse

Who doesn’t enjoy the precious precision of doubles? Here’s how TryParse lets us play around with these delicate data types.

double number;
bool success = double.TryParse("2.71828", out number);  // success = True, number = 2.71828
Enter fullscreen mode Exit fullscreen mode

Float.TryParse C# Example

Floats are just like doubles, except we can’t shove in more decimal points. Let’s see how TryParse handles this.

float number;
bool success = float.TryParse("3.14", out number);  // success = True, number = 3.14
Enter fullscreen mode Exit fullscreen mode

It performs the conversion effortlessly.

C# TryParse Boolean

Time for some truth! Or falsehood. Let’s see how TryParse parses Booleans.

bool flag;
bool success = bool.TryParse("TRUE", out flag);  // success = True, flag = True
Enter fullscreen mode Exit fullscreen mode

Challenge triumphantly passed! It triumphantly parses the string into our Boolean variable.

Advanced TryParse Techniques

You know how superheroes have their secret weapons? For TryParse, those are hexes, decimals, and strings. Want to see how? Fasten your seatbelts!

C# TryParse Hex

Hexadecimal values are everywhere around us. And TryParse is all ready to take them on. Wait and watch!

int hexNumber;
bool success = int.TryParse("A", System.Globalization.NumberStyles.HexNumber, null, out hexNumber);  // success = True, hexNumber = 10
success = int.TryParse("B", System.Globalization.NumberStyles.HexNumber, null, out hexNumber);        // success = True, hexNumber = 11
success = int.TryParse("Z", System.Globalization.NumberStyles.HexNumber, null, out hexNumber);        // success = False, hexNumber = 0
Enter fullscreen mode Exit fullscreen mode

In this code snippet, “A” and “B” are parsed into 10 and 11 respectively, but “Z” returns false. There’s simply no numerical equivalent for a “Z” in the hexadecimal system.

C# Decimal TryParse

Decimals, owing to their scope for precision, are the darlings of division-heavy calculations. For example, calculating the batting average in Cricket or figuring out the fuel efficiency of your car call for decimals. And, TryParse openly welcomes them.

decimal number;
bool success = decimal.TryParse("3.14159265359", out number);  // success = True, number = 3.14159265359
success = decimal.TryParse("-7.389056099", out number);        // success = True, number = -7.389056099
success = decimal.TryParse("_9.87", out number);               // success = False, number = 0
Enter fullscreen mode Exit fullscreen mode

Here, TryParse handles both instances like a boss. It converts both the string “3.14159265359”, the value of Pi up to eleven decimal places, and “-7.389056099”, which could be a obtained result in some high-math function, into decimal values. But, when it encounters “_9.87”, it fails and returns zero, indicating unsuccessful parsing.

C# TryParse String

Converting a string to a name? A mixed type perhaps? Let’s try to parse some complex types.

int stringValue;
bool success = int.TryParse("123HappyCoding", out stringValue);  // success = False, stringValue = 0
success = int.TryParse("567", out stringValue);                  // success = True, stringValue = 567
Enter fullscreen mode Exit fullscreen mode

In this case, TryParse tries to parse “123HappyCoding” to an integer, but fails. Because the string has non-numeric characters. Then, it parses “567”, a string consisting of numeric characters, perfectly into an integer.

Conclusion of TryParse

So there we have it, folks—a whirlwind tour of TryParse in C#. From integers and floats to hexes and enums, we’ve seen it all. TryParse really shines in saving us from the dreaded FormatException and letting us deal with the unexpected in style.

C# TryParse offers us a protective shield that makes code robust, adaptable, and error-resistant. Don’t just take my word for it; give it a shot! Unleash the power of TryParse and watch as your code turns into a fortress that’s impervious to all kinds of exceptions.

Keep exploring and enjoying the magic of C#. Until next time, happy coding!

Top comments (1)

Collapse
 
jangelodev profile image
JoĂŁo Angelo

Hi ByteHide,
Top, very nice !
Thanks for sharing