chap2 C#