C# in Depth, 4E | Jon Skeet