About this site, and C# in Depth
Welcome to the companion web site to C# in Depth.
C# in Depth is a book for those who are passionate about C#. It aims to be a bridge between the existing
introductory books and the language specification: something readable but detailed, exploring every aspect
of the language from version 2 onwards. In the interests of brevity, it doesn't spend much time on C# 1 -
readers are already expected to know the first version at least reasonably. Every new feature from C# 2
onwards is covered, however, as shown in the table of contents below.
One of my hobbies is helping other developers on sites such as Stack Overflow;
before Stack Overflow came along, I used to post a lot on the C# newsgroups. I've come to
appreciate that whatever technologies you might use on top of C# - MVC, WPF, Windows Forms, etc -
if you don't have a firm grasp of the language, you'll find it a lot harder. My hope is that
C# in Depth helps readers to really "grok" the language, so they feel they're working
in tandem with the compiler rather than fighting against it; making the most of new features instead
of constantly being caught out by subtle "gotcha" behaviour.
Table of Contents (3rd edition - now available for pre-order)
- Part one
- 1: The changing face of C# development
- 2: Core foundations: building on C# 1
- Part two
- 3: Parameterized typing with generics
- 4: Saying nothing with nullable types
- 5: Fast-tracked delegates
- 6: Implementing iterators the easy way
- 7: Concluding C# 2: the final features
- Part three
- 8: Cutting fluff with a smart compiler
- 9: Lambda expressions and expression trees
- 10: Extension methods
- 11: Query expressions and LINQ to Objects
- 12: LINQ beyond collections
- Part four
- 13: Minor changes to simplify code
- 14: Dynamic binding in a static language
- Part five
- 15: Asynchrony with async/await
- 16: C# 5 bonus features and closing thoughts
- Appendices
- A: LINQ standard query operators
- B: Generic collections in .NET
- C: Version summaries