Home > Store

Essential C# 7.0, 6th Edition

Essential C# 7.0, 6th Edition

eBook (Watermarked)

  • Your Price: $38.39
  • List Price: $47.99
  • Includes EPUB, MOBI, and PDF
  • About eBook Formats
  • This eBook includes the following formats, accessible from your Account page after purchase:

    ePub EPUB The open industry format known for its reflowable content and usability on supported mobile devices.

    MOBI MOBI The eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

    Adobe Reader PDF The popular standard, used most often with the free Adobe® Reader® software.

    This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.

Also available in other formats.

Register your product to gain access to bonus material or receive a coupon.


  • Copyright 2018
  • Dimensions: 7" x 9-1/8"
  • Edition: 6th
  • eBook (Watermarked)
  • ISBN-10: 1-5093-0361-8
  • ISBN-13: 978-1-5093-0361-8

The Comprehensive, Expert Guide to C# Language Programming

“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! . . . Mark is super smart, insists on understanding everything to the core, and has phenomenal insight into how things affect real developers. . . . He goes right to the essence and communicates with great integrity—no sugarcoating—and has a keen eye for practical value and real-world problems.”

–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 the most important C# features from 3.0 through 7.0 and including 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# constructs with succinct examples, and presents best-practice coding guidelines. To help you maintain existing code, separate indexes provide version-specific answers for C# 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.


Author's Site

Please visit the author's site at https://intellitect.com/EssentialCSharp/.

Sample Content

Sample Pages

Download the sample pages (includes Chapter 5)

Table of Contents

Figures xv

Tables xvii

Foreword xix

Preface xxi

Acknowledgments xxxiii

About the Author xxxv

Chapter 1: Introducing C# 1

Hello, World 2

C# Syntax Fundamentals 11

Working with Variables 20

Console Input and Output 24

Managed Execution and the Common Language Infrastructure 32

Multiple .NET Frameworks 37

Chapter 2: Data Types 43

Fundamental Numeric Types 44

More Fundamental Types 53

null and void 67

Conversions between Data Types 69

Chapter 3: More with Data Types 77

Categories of Types 77

Nullable Modifier 80

Tuples 83

Arrays 90

Chapter 4: Operators and Control Flow 109

Operators 110

Introducing Flow Control 126

Code Blocks ({}) 132

Code Blocks, Scopes, and Declaration Spaces 135

Boolean Expressions 137

Bitwise Operators (<<, >>, |, &, ^, ~) 147

Control Flow Statements, Continued 153

Jump Statements 165

C# Preprocessor Directives 171

Chapter 5: Methods and Parameters 181

Calling a Method 182

Declaring a Method 189

The using Directive 195

Returns and Parameters on Main() 200

Advanced Method Parameters 203

Recursion 215

Method Overloading 217

Optional Parameters 220

Basic Error Handling with Exceptions 225

Chapter 6: Classes 241

Declaring and Instantiating a Class 245

Instance Fields 249

Instance Methods 251

Using the this Keyword 252

Access Modifiers 259

Properties 261

Constructors 278

Static Members 289

Extension Methods 299

Encapsulating the Data 301

Nested Classes 304

Partial Classes 307

Chapter 7: Inheritance 313

Derivation 314

Overriding the Base Class 326

Abstract Classes 338

All Classes Derive from System.Object 344

Verifying the Underlying Type with the is Operator 345

Pattern Matching with the is Operator 346

Pattern Matching within a switch Statement 347

Conversion Using the as Operator 349

Chapter 8: Interfaces 353

Introducing Interfaces 354

Polymorphism through Interfaces 355

Interface Implementation 360

Converting between the Implementing Class and Its Interfaces 366

Interface Inheritance 366

Multiple Interface Inheritance 369

Extension Methods on Interfaces 369

Implementing Multiple Inheritance via Interfaces 371

Versioning 374

Interfaces Compared with Classes 375

Interfaces Compared with Attributes 377

Chapter 9: Value Types 379

Structs 383

Boxing 390

Enums 398

Chapter 10: Well-Formed Types 411

Overriding object Members 411

Operator Overloading 424

Referencing Other Assemblies 432

Defining Namespaces 442

XML Comments 445

Garbage Collection 449

Resource Cleanup 452

Lazy Initialization 461

Chapter 11: Exception Handling 465

Multiple Exception Types 465

Catching Exceptions 469

General Catch Block 473

Guidelines for Exception Handling 475

Defining Custom Exceptions 479

Rethrowing a Wrapped Exception 483

Chapter 12: Generics 487

C# without Generics 488

Introducing Generic Types 493

Constraints 506

Generic Methods 519

Covariance and Contravariance 524

Generic Internals 531

Chapter 13: Delegates and Lambda Expressions 537

Introducing Delegates 538

Declaring Delegate Types 542

Lambda Expressions 550

Anonymous Methods 556

Chapter 14: Events 575

Coding the Publish-Subscribe Pattern with Multicast Delegates 576

Understanding Events 591

Chapter 15: Collection Interfaces with Standard Query Operators 603

Collection Initializers 604

What Makes a Class a Collection: IEnumerable<T> 607

Standard Query Operators 613

Anonymous Types with LINQ 646

Chapter 16: LINQ with Query Expressions 657

Introducing Query Expressions 658

Query Expressions Are Just Method Invocations 676

Chapter 17: Building Custom Collections 679

More Collection Interfaces 680

Primary Collection Classes 683

Providing an Indexer 702

Returning Null or an Empty Collection 705

Iterators 705

Chapter 18: Reflection, Attributes, and Dynamic Programming 721

Reflection 722

nameof Operator 733

Attributes 735

Programming with Dynamic Objects 759

Chapter 19: Multithreading 771

Multithreading Basics 774

Working with System.Threading 781

Asynchronous Tasks 789

Canceling a Task 810

The Task-based Asynchronous Pattern 816

Executing Loop Iterations in Parallel 846

Running LINQ Queries in Parallel 856

Chapter 20: Thread Synchronization 863

Why Synchronization? 864

Timers 893

Chapter 21: Platform Interoperability and Unsafe Code 897

Platform Invoke 898

Pointers and Addresses 910

Executing Unsafe Code via a Delegate 920

Chapter 22: The Common Language Infrastructure 923

Defining the Common Language Infrastructure 924

CLI Implementations 925

.NET Standard 928

Base Class Library 929

C# Compilation to Machine Code 929

Runtime 932

Assemblies, Manifests, and Modules 936

Common Intermediate Language 939

Common Type System 939

Common Language Specification 940

Metadata 941

.NET Native and Ahead of Time Compilation 942

Index 945

Index of 7.0 Topics 995

Index of 6.0 Topics 998

Index of 5.0 Topics 1001

More Information

Unlimited one-month access with your purchase
Free Safari Membership