Overall, I would give this a recommended rating. ForĀ£25, it is a fairly good introduction to C#.
The C# language has its heritage in C++ and Java and if you are familiar with either (or both) of these languages, you should be able to pick up C# without a problem. If you are a linux user, then you can still make use of the book as just about every example is compilable using mcs/mono from Ximian Inc.
If you are new to OOP, then you will have problems as the description of OOP and its principles are not clearly explained. A newcomer would be better off with a basic OOP book in either Java or C++, then come back to this to learn C#.
The book is well written and very clear in both writing style and chapter objectives. The only problems come in some very important parts, which are not fully explained. For instance both void Main() and
int Main()are used, but it is never explained when you would use the differing return types. Fortunately, this sort of problem does not occur too often.
The additions to the language over C++ and Java are well described and make the basis of OOP a lot simpler. One of the simplest, yet best ideas is that all variables have to be initialised the compiler will not compile any source where a variable is not initialised (unless the out modifier is used). Passing by reference is made clear by use of 'ref' instead of&
The main problems I have with the book are three-fold.
- 1. The book describes itself as being .NET programming. While C# is designed for .NET, the book itself really does not cover .NET to justify being called a .NET programming book
- 2. The method classes are not very clearly described. Descriptions are very minimal and unfortunately, there are not enough examples of methods to show how to properly use the methods
- 3. The book is not very well organised. The first part is very basic, the second part covers OOP with just a chapter on the VisualStudio .NET debugger separating them (why that is in the book, I don't really know!). The only problem is that the coverage of aspects that really could have done with being in the first part is covered right at the end of the second part.
Unusually for a programming book, there is a comprehensive appendix giving definitions to C# keywords. It is more usual to just have a listing of the keywords. I suppose that it is because the language is new.
Overall, I would give this a recommended rating. ForĀ£25, it is a fairly good introduction to C#.