Discards in C#
The other day I ran into an everyday run-of-the-mill issue that I never never thought much about. We’ve all been here, where we
want to check that a date string is valid using a predetermined format. This would be quite trivial to do using DateTime.TryParse. But
what got me thinking was the ugliness of having to use the Out parameter which is not bad to say, but having to declare a variable just
to never use it never really bothered me until today.
Lets consider the code below:
In the example above, all we want is the result whether the string is a valid DateTime. No need for the extra unused variable right?
In C# 7.0 we have the ability to use Discards, which are like dummy variables. They are local variable that are read-only, they don't have names
and are represented as an _ (underscore). Below is how we can improve our code above using Discards.
By using the _ underscore in place of the out variable this reduces your keystrokes and cleans up your code files a bit.
Discards are especially great when working with tuples and you need to ignore certain values from time- to time.
There you have it, no more local variable that are never going to be used.