C# 3.0 The Complete Reference 3/E by Herbert Schildt