A practical analysis of the new features of C# 6: Part 3