That means that it is useful to
clarify what is in which version. It also provides a feeling of context and evolution??”it
shows how the language has developed over time.
Chapter 1 sets the scene by taking a simple piece of C#1 code and evolving it, seeing
how C#2 and 3 allow the source to become more readable and powerful. We look
at the historical context in which C# has grown, and the technical context in which it
operates as part of a complete platform: C# as a language builds on framework libraries
and a powerful runtime to turn abstraction into reality.
Chapter 2 looks back at C#1, and three specific aspects: delegates, the type system
characteristics, and the differences between value types and reference types. These
ABOUT THIS BOOK xxv
topics are often understood ???just well enough??? by C#1 developers, but C#2 and 3
develop them significantly, so a solid grounding is required in order to make the most
of the new features.
Chapter 3 tackles the biggest feature of C#2, and potentially the hardest to grasp:
generics. Methods and types can be written generically, with type parameters standing
in for real types which are specified in the calling code. Initially it??™s as confusing as this
description makes it sound, but once you understand generics you??™ll wonder how you
survived without them.
If you??™ve ever wanted to represent a null integer, chapter 4 is for you.
Pages:
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33