Source: http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/Oreilly.Csharp.5.0.in_.a.Nutshell.5th.Edition.June_.2012.pdf