UKUUG home


(the UK's Unix & Open Systems User Group)






Book Discounts

Other Discounts

Mailing lists






Learning C# Jesse Liberty
Published by O'Reilly and Associates
368 pages
£ 24.95
Published: 4th October 2002
reviewed by John Collins
   in the March 2003 issue (pdf), (html)

This book introduces the C# programming language, the object-oriented language devised by Microsoft for their .NET environment. It does not assume a great deal of knowledge about programming, object-orientation or .NET.

I confess before I start that I do not like C# very much myself (nor do I like .NET or Microsoft but that's another story). I think that it's too like C and C++ whilst holding out a huge number of surprises in various places, such as ``char'' being 16 bits and what look like ordinary declarations automatically being references in some cases. It doesn't have multiple inheritance or pointers to members (in fact it scarcely has pointers to anything) but it does have a whole new idea called interfaces. I get the feeling that it was designed by someone who has strong view on some aspects of C and C++, like forbidding ``falling through'' in switches and banning the passing of parameters by references which have not been initialised (though there is a new keyword ``out'' to deal with that). C++ users will probably miss templates, although some of the commonly-used containers, notably strings, are built in to C#.

The book tackles the language in the time-honoured way in which programming languages are presented, talking about simple variables and constants and control structures before moving on to classes, inheritance, operators, structs (which are much more different from classes in C# than in C++), then onto arrays, strings and regular expressions before concluding with exceptions.

The book concludes by suggesting further reading for serious use of the language.

I think that the book introduces the language well although I am sure that the reader will have to go for one of the fuller manuals to use the language seriously. One or two features did not seem to me to be fully explained, for example the use of ``new'' and ``override'' with and without ``virtual'' for derived class methods wasn't completely clear to me, and it would be nice to have had an outline of one or two of the operators, such as those for multithreading, in the end.

A chapter or set of appendices introducing the language to C and C++ and Java programmers and highlighting the differences would not have gone amiss in my opinion, but apart from that I am sure this book will get those of us who have to use C# off the ground at reasonable speed.

Back to reviews list

Tel: 01763 273 475
Fax: 01763 273 255
Web: Webmaster
Queries: Ask Here
Join UKUUG Today!

UKUUG Secretariat
More information

Page last modified 03 Apr 2007
Copyright © 1995-2011 UKUUG Ltd.