C# 3.0 the Complete Reference by Herbert Schildt