Learn From an Expert
Author Mark Michaelis is a world-class C# expert: a long-time Microsoft MVP and Regional Director who has served on Microsoft’s C# design review team. He presents a comprehensive tutorial and reference for the entire language, including expert coverage of key C# 7.0 enhancements, C# 7.0’s use with .NET Core/.NET Standard, and cross-platform compilation. He illustrates key constructs with succinct examples and presents best-practice coding guidelines. To help you maintain existing code, separate indexes provide version-specific answers for C# 4.0, 5.0, 6.0, and 7.0, and visual icons show when each language innovation was introduced.


A Peek Inside
- Make the most of C# 7.0 enhancements, including tuples, deconstructors, pattern matching, local functions, and ref returns
- Work efficiently with C# data types, operators, control flow, methods, and parameters
- Write more robust code with C# object-oriented constructs
- Implement reliable, effective exception handling
- Reduce code complexity with generics, delegates, lambda expressions, and events
- Leverage advanced dynamic and declarative programming techniques
More Highlights
- Query diverse data collections using LINQ with query expressions
- Create custom collections that operate against business objects
- Access .NET collections via collection interfaces and standard query operators
- Master multithreading and synchronization, including the async/await paradigm
- Optimize performance and interoperability with P/Invoke and unsafe code
- Run your code on Linux or macOS with cross-platform compilation
- Includes C# 7.1, 7.2, and 7.3 language enhancements.

Extras
Purchase the newest edition of the Essential C# series today! Curious about what’s new in Essential C# 8.0?
Hi Mark.
I am reading Essential C# 7.0 in learning.oreilly.com , this is fantastic book and I enjoy it.
In chapter 6 on Static Fields section written “Unlike with instance fields, if no initialization for a static field is provided, the static field will automatically be assigned its default value (0, null, false, and so on)”.
I think instead of saying “instance fields” it is correct to say “instance variables”.
Hi mehdi,
By variable I assume you mean “local variable”? While local variables may not be initialized when declared, you cannot retrieve a value from a “variable” without assigning it first – the compiler will prevent it. In summary, therefore, “instance field” is the correct term. Technically, it could be expanded to include automatically implemented properties (which internally have instance fields). In other words, the static vs. instance only relates to instance data (at the class level).
Thanks,
Mark
I noticed on Amazon that the 6.0 book is 24 pages shorter than 5.0 even though one would expect more content. I realize there are many reasons that could account for this but I was curious if anything was removed since the previous edition, and if so, what exactly? I was just going to sell my 5.0 book but I’m hesitant to do so if there’s anything exclusive in it.
Hi Miles… The reason for the reduced page count is because we eliminated an appendix chapter on Multithreading prior to C# 5.0 and moved it to a download exclusively. I believe this material is even more dated than it was for Essential C# 5.0 such that printing it was not of sufficient value to the reader. As it turns out, we did add pages for C# 6.0 but without removing any the book would have been too long for the binding – so it is a good thing we cut the appendix anyway. :)
Thanks!
Mark
Is this book available yet? If not, when will it be published? Thanks!
Hi Steven: The book is expected to be out in a couple weeks: Oct. 5th, 2016.
Regarding translation to Norwegian:
2 years ago i started to translate Essentials C# 4.0 third edition, to Norwegian. I have now finished the translation, but i have not published it yet since i wanted to upgrade the book to Essentials C# 5.0 fourth edition, or Essential C# 6.0. I was reading an review by Ian Eliot regarding Essentials C# 5.0. He said that it was not much difference between Essentials C# 4.0 third edition – which i have translated, and Essentials C# 5.0 fourth edition. Now i need to know, what’s best to do, upgrade the translation from Essential C# 4.0 to Essentials C# 5.0 fourth edition, or to Essentials C# 6.0? When vil Essentials C# 6.0 be published?
Please contact me at Mark@IntelliTect.com and we can discuss what approach would be best.
Comments are closed.