Purchase the newest edition of the Essential C# series today! Curious what’s new in Essential C# 8.0? Click here.

This book has been a classic for years, and remains one of the most venerable and trusted titles in the world of C# content, and probably far beyond!

Mads Torgersen, C# Program Manager, Microsoft

Essential C# 7.0 is a well-organized, no-fluff guide to C# 7.0 for programmers at all levels of experience. Reflecting C# 7.0 features and modern programming patterns, it will help you write code that’s simple, powerful, robust, secure, and maintainable.

Author Mark Michaelis is a world-class C# expert: a long-time Microsoft MVP and Regional Director who also 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 C# 7.0 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.

  • 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
  • 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 C# 7.0 cross-platform compilation
  • Includes C# 7.1, 7.2, and 7.3 language enhancements.

This guide offers you a complete foundation for successful development with modern versions of the C# language in any project or environment.

Order through Amazon, today!

Source Code

  • Download the source code for Essential C# 7.0 here.
  • View it in GitHub here.

Source Code

  • View the Essential C# 7.0 Errata here.

Previous Versions

Sample Chapters

Join the Conversation

  1. Mark Michaelis


Your email address will not be published. Required fields are marked *

  1. 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”.

    1. 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).

  2. 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.

    1. 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. :)

  3. 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?