c# A PRACTICAL APPROACH - B. STANLEY, LIPPMAN (2002)