Beginning C# Object-Oriented Programming - Dan Clark (Apress)