Among the programming books that I have read, I have noticed that there tend to be two specific types: tutorials and references. Tutorials are step-by-step books (Deitel comes to mind) which progress from beginning to end comprehensively. References are simply books that you can look something up if needs be. With Professional C#, Wrox has managed to combine the two genres into a very workable format.
A note to those who would opt for this book: There is a Beginning C# book by Wrox that would be more suited to those who have little background in programming. As for Professional, the only requirements that seem to be needed are a sound understanding of general programming practices. From there, the book explains itself. It helps by relating C# concepts to their Java, C++, and Visual Basic counterparts, so those with experience in those three fields will find this book a much easier text to read.
Now on to the actual content of the book, all 1200-plus pages of it! The book starts out with a fairly in-depth analysis and explanation of what the .NET Framework is and why you should care at all. Through the next four chapters, the concepts, syntax, and Base Classes are introduced. This is where I believe the `tutorial' part of the book comes in. Reading these chapters in order would be a wise thing to do, in my opinion as a somewhat-but-not-totally-experienced programmer. Each topic flows nicely into the next and provides easy and understandable reading, chock-full of examples and code-snippets. As I mentioned before, many of these topics are related back to Java, C++, and VB, making concepts easier to grasp.
Once you have finished reading through those five chapters, the book in its entirety turns into a `reference' book. There isn't any specific order you should read through. You can simply pick a topic and read up on it. Wrox offers a myriad of topics throughout the 23 chapters in the book including a tutorial of the Visual Studio .NET environment, working with C# on ASP.NET pages, other web services, graphics, remoting, security, and many more. The scope of the book is definitely large as Wrox attempts to cram in as much C# and .NET knowledge as is humanly possible.
So is this book sufficient for programmers looking to get started with C#? Most definitely. This book is excellent as either a tutorial or a reference and covers nearly every topic you could imagine. However, it also has its problems.
The main problem I have with this book is simply the fact that it has no class index. There is no place to just `look up' what classes have what methods and properties and the such. In addition, when new classes are introduced throughout the text, many of the methods are given, but their signatures are not! The first example that comes to mind is the String class section in Chapter 5: The book lists a few of the methods of the String class (not all of them, however), but all they give are the names of the methods. How am I supposed to use these methods if I don't know how they work? Many of them are seemingly intuitive, and you can find all the information through Microsoft's MSDN, but many programmers these days want a book they can reference when they have a problem. The way that it is set up, this book would fail miserably at the task.
Another problem is that the examples tend to be a little `shallow'. The code snippets are definitely useful, but only after studying them for a few minutes to see exactly what is going on. The context of the examples could definitely be a lot better.
Finally, just a minor little problem: There tends to be a more-than-necessary number of spelling and syntactical errors, the former more than the latter. While this isn't a huge problem, I encountered so many spelling and grammatical errors that I honestly believe that running it through Word's spell and grammar checkers probably would have alleviated many of the problems. The syntax errors are few and far between, but they are still evident. With a book that is over 1200 pages in size with as many authors as this has, it is definitely acceptable to have these kinds of mistakes. But I still believe it could have been edited a bit more thoroughly.
Despite its few faux pas, the book as a whole is an excellent resource that any and every C# programmer should have. Even without full class and method signatures, using the book as a reference is easy to do and should be done. It covers many topics in-depth that other C# books have failed to mention, especially when it comes to web services and programming. Professional C# 2nd Edition is certainly on my recommended list.