Author: Jon Skeet
Publisher: Manning Publications Co.
ISBN: 1933988363
April 2008, 424 pages
http://www.manning.com/skeet/
The book focuses on C# 2 and C# 3, but goes a bit relevant things on building on C# 1. It is targeted at developers familiar with C# 1 and making the move to C# 2 and C# 3. The book is not syntax reference -like, and focuses more on the aspects and use of the language while of course, introducing the new and exciting features in C# 2 and C# 3.
Table of Contents
foreword xvii
preface xix
acknowledgments xxi
about this book xxiii
about the cover illustration xxviii
comments from the tech review xxix
Part 1 Preparing for the journey
1 The changing face of C# development
1.1 Evolution in action: examples of code change
1.2 A brief history of C# (and related technologies)
1.3 The .NET platform
1.4 Fully functional code in snippet form
1.5 Summary
2 Core foundations: building on C# 1
2.1 Delegates
2.2 Type system characteristics
2.3 Value types and reference types
2.4 C# 2 and 3: new features on a solid base
2.5 Summary
Part 2 C# 2: solving the issues of C# 1
3 Parameterized typing with generics
3.1 Why generics are necessary
3.2 Simple generics for everyday use
3.3 Beyond the basics
3.4 Advanced generics
3.5 Generic collection classes in .NET 2.0
3.6 Limitations of generics in C# and other languages
3.7 Summary
4 Saying nothing with nullable types
4.1 What do you do when you just don’t have a value?
4.2 System.Nullable and System.Nullable
4.3 C# 2’s syntactic sugar for nullable types
4.4 Novel uses of nullable types
5 Fast-tracked delegates
5.1 Saying goodbye to awkward delegate syntax
5.2 Method group conversions
5.3 Covariance and contravariance
5/4 Inline delegate actions with anonymous methods
5.5 Capturing variables in anonymous methods
5.6 Summary
6 Implementing iterators the easy way
6.1 C# 1: the pain of handwritten iterators
6.2 C# 2: simple iterators with yield statements
6.3 Real-life example: iterating over ranges
6.4 Pseudo-synchronous code with the Concurrency and Coordination Runtime
6.5 Summary
7 Concluding C# 2: the final features
7.1 Partial types
7.2 Static classes
7.3 Separate getter/setter property access
7.4 Namespace aliases
7.5 Pragma directives
7.6 Fixed-size buffers in unsafe code
7.7 Exposing internal members to selected assemblies
7.8 Summary
Part 3 C# 3—revolutionizing how we code
8 Cutting fluff with a smart compiler
8.1 Automatically implemented properties
8.2 Implicit typing of local variables
8.3 Simplified initialization
8.4 Implicitly typed arrays
8.5 Anonymous types
8.6 Summary
9 Lambda expressions and expression trees
9/1 Lambda expressions as delegates
9.2 Simple examples using List and events
9.3 Expression trees
9.4 Changes to type inference and overload resolution
9.5 Summary
10 Extension methods
10.1 Life before extension methods
10.2 Extension method syntax
10.3 Extension methods in .NET 3.5
10.4 Usage ideas and guidelines
10.5 Summary
11 Query expressions and LINQ to Objects
11.1 Introducing LINQ
11/2 Simple beginnings: selecting elements
11.3 Filtering and ordering a sequence
11.4 Let clauses and transparent identifiers
11.5 Joins
11.6 Groupings and continuations
11.7 Summary
12 LINQ beyond collections
12.1 LINQ to SQL
12.2 Translations using IQueryable and IQueryProvider
12.3 LINQ to DataSet
12.4 LINQ to XML
12.5 LINQ beyond .NET 3.5
12.6 Summary
13 Elegant code in the new era
13.1 The changing nature of language preferences
13.2 Delegation as the new inheritance
13.3 Readability of results over implementation
13.4 Life in a parallel universe
13.5 Farewell
appendix: LINQ standard query operators
index
My opinion:
This is a great book for anyone taking their first steps with C# 2 and C# 3. It's not a syntax reference book, so don't expect seeing pages after pages of endless tables describing what can be told in the documentation. In this book Jon Skeet provides deep insight into C#. His experience is nicely included in the writing as he goes on the topics with great care - and the result is this -, a first-class book about C#.
Share this post: email it! | bookmark it! | digg it! | reddit! | kick it! | live it!