Make sure this book is really what you want before purchasing. The title, "C# 2.0..." is _very_ misleading! There is very little in the way of 2.0 features covered to any degree of detail for one to know how to really understand or use the feature described. While the book does a reasonably good job of describing the features/uses of C# 1.0 (again, see the title of this review), there are much better books out there, albeit much thicker, which are much more readable and provide much better examples (e.g. Andrew Troelsen's, C# and the .NET Platform). Additionally, the book goes to great pains to keep the number of pages at a manageable level - at the expense of readability. If you enjoy reading Extended Backus-Naur Form (EBNF) notation then this is the book for you ;-) For example, to explain the syntax of interface declaration:
--------------------------------------------------
InterfaceDecl = InterfaceModifiers ? "interface" Identifier (":" Interfaces)? "{" InterfaceMembers "{" ";"?
InterfaceModifier = "new" | "public" | "protected" | "internal" | "private"
InterfaceMember = MethodDecl | PropertyDecl | EventDecl | IndexerDecl
In case you forget you will need to page back to the appropriate areas of the book discussing the InterfaceMember's various item definitions for MethodDecl, etc.
--------------------------------------------------
This type of notation is fine for online reference or even the printed language "manual" (The C# Programming Language by Hejlsberg, et. al.), but not this type of book.
Also, the book description states, "* Provides a carefully focused explanation of every aspect of the C# language, including entire chapters on the unified type system, advanced types, collections, generics, reflection and attributes." In chapter 8, Collections and Generics, out of 20 total pages for the chapter there are only 3 1/2 pages devoted to generics, with 1 of those pages comprised of the skeleton listing of 2 BoundedQueue class definitions, one with generics based syntax and one without (i.e. replace all occurrences of int with <T>). By the way, Hejlsberg's book gives a _much_ better introduction/overview to the v2.0 language than this book...it is dense reading and has a very "formal" style, but you will get much more from it than this piece.
To summarize, this book tries to be the "jack-of-all-trades" and ends up being the "master-of-none". Excerpted from the preface, "Finally, all principal features of the C# programming language are covered..." While this may be true in principal it lacks almost all forms of substance and detail. It completely sacrifices quality in favor of page count. If you are looking for a book to give you a 10,000-foot overview of the v1.0 language and a 500,000-foot overview of the v2.0 features and are prepared to decode the text while you read (i.e. translate EBNF -> English) then this book is worth 2-stars; but, when you are done reading this book be ready to turn around and buy another book which actually shows you how to use the language with more concrete explanations and better examples. If you are looking to really learn the language and be proficient with it in the real-world do not waste your time with this "overview"... look elsewhere.