Description

Book Synopsis

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.



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

Essential C# 7.0

Product form

£32.99

Includes FREE delivery

RRP £43.99 – you save £11.00 (25%)

Order before 4pm tomorrow for delivery by Sat 10 Jan 2026.

A Paperback / softback by Mark Michaelis

15 in stock


    View other formats and editions of Essential C# 7.0 by Mark Michaelis

    Publisher: Microsoft Press,U.S.
    Publication Date: 17/09/2018
    ISBN13: 9781509303588, 978-1509303588
    ISBN10: 1509303588

    Description

    Book Synopsis

    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.



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

    Recently viewed products

    © 2026 Book Curl

      • American Express
      • Apple Pay
      • Diners Club
      • Discover
      • Google Pay
      • Maestro
      • Mastercard
      • PayPal
      • Shop Pay
      • Union Pay
      • Visa

      Login

      Forgot your password?

      Don't have an account yet?
      Create account