C# deconstruction and overloads
While investigating the new features in C# 7.x, I created the following class: using System; namespace ValueTuples { public class Person { public string Name { get; } public DateTime BirthDate { get; } public Person(string name, DateTime birthDate) { Name = name; BirthDate = birthDate; } public void Deconstruct(out string name, out int year, out int month, out int day) { name = Name; year = BirthDate.Year; month = BirthDate.Month; day = BirthDate.Day; } public void Deconstruct(out string name, out int year, out int month, out (int DayNumber, DayOfWeek DayOfWeek) day) { name = Name; year =