This is the second edition of the book, updated to account for the .NET changes that have taken place since the first edition in 2001. It covers .NET 1.1 and 2003 version of C#.
The book is a weighty tome of 1100 pages. It is substantial in subject matter also. It comprises of five sections; Introduction to .NET and C#, The C# Programming Language, Programming with .NET, Leveraging the .NET libraries, and Web Applications and XML Web Services. Troelsen does a very competent job explaining the detailed aspects of both C# and the .NET framework.
Not only are the concepts described here; there is a pragmatic aspect also. For example, garbage collection is treated in detail, including potential pitfalls of using unmanaged resources and how to override the default Finalize() method to clean up such resources [CMH: but see Alan Griffiths's paper "Heretical Java #1" in Overload 59, which points out that Finalize may NEVER be called...]. The examples are pithy, but illustrate the text. The author uses a theme of automobiles in all the examples for simplicity. Not allwill warm to this topic but one does not need mechanical expertise to follow the examples.
Just some of the aspects are Windows forms programming, graphics, ASP.NET and web development, ADO database, Type Reflection, and Object Serialization. All covered in sufficient detail to warrant this book as a serious contender for the book you are most likely to turn to if you need to refer to a C# or .NET topic.
This is not a beginner's book. The author has not considered the needs of a novice programmer. But if the potential reader has some programming experience this book is an excellent and thorough reference on the subject.