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:
refarguments (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)
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.