Simple question. Many consider "The C++ Programming Language" by Bjarne Stroustrup to be the de facto for learning advanced C++. What is the equivilent book for learning C# to the most advanced level?
views:
337answers:
6IMHO I don't think there is an equivalent book for C# at the moment. Partly, this could be due to the (fast) pace at which the language is evolving, or due to implementation specialization (e.g. a specific C# focus when implementing WCF, WPF, ASP.. et al).
take a look at "The C# Programming Language" by Anders Hejlsberg, as he is the creator of C#.
I'm fond of The CLR via C#, though I read an earlier edition. It digs deep into the design of the CLR and helped me to understand the reasoning behind it. C# is designed to allow you to express your intentions for what you'd like the CLR to do, but it's really the CLR that makes .NET what it is. This, in turn, has helped me to understand C# more fully, since its various nuances reflect its underlying purpose, much as Stroustrup had specific purposes in mind for C++.
I'll repost the language spec, since the first person to post this deleted it.
Probably the C# language specification - get it here.
You may think it's too dry, but in this case the spec is surprisingly approachable. The dead tree edition is here:
http://www.microsoft.com/MSPress/books/5490.aspx
As others have said, the bound annotated specification is pretty similar to books like Stroustrup's. It is perhaps less of a tutorial, but it is quite thorough. Annotations are by me and a whole bunch of other people who allegedly know what they're talking about. :-)
If you want a good in-depth background on C# that is more tutorial-like, try the aptly-named C# In Depth by Jon Skeet.
If you want a good book that more emphasizes the essential bits you need to get the job done, try the aptly-named Essential C# by Mark Michaelis.
I was technical editor for both books and recommend both unreservedly.