Introduction
Let’s talk about one of the cool new features of C# 7.0 - deconstruction. Quite often you might need to return more than one value from a method, which can be accomplished in several ways:
- use
out
/ref
arguments (usually considered a code smell) - create a more meaningful class/struct that represents the result of calling the method (a preferable option, especially as the number of returned values grows)
- use
System.Tuple
(some kind of a middleground)
They all work, but in fact only a special return type feels like a good solution, since both out
arguments and explicitly used tuples look just like a boilerplate code and don’t contribute to readable code.