Essential C# 3.0: For .NET Framework 3.5 (2nd Edition)