C# In Depth by Jon Skeet