Author: Trey Nash
Publisher: Apress, 2007
Aimed at: Experienced developers
Pros: Skips the basics to concentrate on more advanced ideas
Cons: Occasionally too much detail
Reviewed by: Mike James
If you already know a programming language, C++ or Java say, then you really don’t want a C# book that starts off with the very basics. Trey Nash has attempted to provide a presentation of C# that is “accelerated” so that you won’t have to wade through the really obvious stuff. It almost works but the presentation is perhaps a little too dry and it reads like a manual in places. It tends to introduce an idea and then explain every possible detail in a few sentences which produces a cloud of information.
Where the book succeeds best is in the small discussions of some principle or other. For example, after explaining the mechanics of exceptions, a section on “Achieving Exception Neutrality” then explains the philosophy behind exception handling and sets out what you should strive to implement in your code. As a result the best way to read this book is to skim read the detailed introductions, returning later if you want to, but then focus in on the more general advice in between the details.
Chapter 13, “In search of C# canonical forms”, is particularly valuable as it concentrates on how C# should be used. Even though it is over 50 pages in length it really only scratches the surface and probably should be turned into a book in its own right.
The 2008 edition of the book goes into classes, struts and objects in more detail than the 2005 version and now devotes over 80 pages to the topic. It also has chapters on extension methods and lambda expressions as well as one on LINQ.
Notice that the focus is on C# and how it is implemented in the CLR. You will need another book if you want to know how C# interacts with the .NET class library. Recommended as long as you are prepared to skim some sections.