Essential C# 6.0 - Mark Michaelis, Eric Lippert

Essential C# 6.0

Buch | Softcover
1008 Seiten
2015 | 5th edition
Addison Wesley (Verlag)
978-0-13-414104-6 (ISBN)
73,75 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
“Welcome to one of the greatest collaborations you could dream of in the world of C# books—and probably far beyond!”

—From the Foreword by Mads Torgersen, C# Program Manager, Microsoft


Essential C# 6.0 is a well-organized, no-fluff guide to the latest versions of C# for programmers at all levels of experience. Fully updated to reflect new C# 6.0 and .NET 4.6 features and patterns, it will help you write C# code that’s simple, powerful, robust, secure, and maintainable.

This book’s authors are world-class C# experts: long-time Microsoft MVP and Regional Director Mark Michaelis and Eric Lippert, formerly principal developer on Microsoft’s C# compiler team. Together, they cover the entire language, illustrating key constructs with succinct examples and offering a complete foundation for successful C# development.

Essential C# 6.0 makes it easy to program with any version of C#, whether you’re creating new code or maintaining existing systems. Separate indexes for C# versions 4, 5, and 6 help you quickly find version-specific answers with accompanying visual indicators that help you identify which language innovations will work when. This edition also includes a set of best-practice C# Coding Guidelines updated to leverage C# 6.0 constructs.

Coverage includes



Mastering C# data types, operators, control flow, methods, and parameters
Using C# object-oriented constructs, including classes, inheritance, interfaces, and more—all with the significantly simplified syntax of C# 6.0
Working with well-formed value and reference types
Implementing reliable, effective exception handling
Reducing code complexity with generics, delegates, lambda expressions, and events (including a simplified C# 6.0 syntax for triggering events)
Learning dynamic programming with reflection and attributes
Querying diverse data collections using LINQ with query expressions
Creating custom collections that operate against business objects
Using collection interfaces and standard query operators to access .NET collections
Understanding the Common Language Infrastructure and C# in the context of .NET 4.6
Taking advantage of declarative programming, embedded metadata, reflection, and attributes
Mastering multithreading and synchronization, including the new async/await paradigm
Using P/Invoke, pointers, and direct memory manipulation to interoperate with other languages
Understanding how C# programs relate to the underlying runtime

For Qualified Instructors

An instructor’s guide, exercises, and a slide deck are available to support your courses.

Mark Michaelis is founder of IntelliTect, where he serves as its Chief Technical Architect and trainer. For nearly two decades he has been a Microsoft MVP, and he is also a Microsoft Regional Director. Michaelis serves on several Microsoft software design review teams, including C#, Azure, SharePoint, and Visual Studio ALM. He speaks at developer conferences and has written numerous books. Eric Lippert is developer on the C# analysis team at Coverity/Synopsys, was previously principal developer on Microsoft’s C# compiler team and a member of its C# language design team. During his 16 years at Microsoft, he also helped design and implement VBScript, JScript, Windows Script Host, and Visual Studio Tools for Office, and served on ECMA’s JavaScript standardization committee.

Figures xv

Tables xvii

Foreword xix

Preface xxiii

Acknowledgments xxxv

About the Authors xxxvii

Chapter 1: Introducing C# 1

Hello, World 2

C# Syntax Fundamentals 4

Console Input and Output 18

Chapter 2: Data Types 35

Fundamental Numeric Types 36

More Fundamental Types 45

null and void 58

Categories of Types 61

Nullable Modifier 64

Conversions between Data Types 65

Arrays 71

Chapter 3: Operators and Control Flow 89

Operators 90

Introducing Flow Control 107

Code Blocks ({}) 114

Code Blocks, Scopes, and Declaration Spaces 116

Boolean Expressions 118

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

Control Flow Statements, Continued 134

Jump Statements 146

C# Preprocessor Directives 152

Chapter 4: Methods and Parameters 161

Calling a Method 162

Declaring a Method 169

The using Directive 175

Returns and Parameters on Main() 180

Advanced Method Parameters 183

Recursion 192

Method Overloading 194

Optional Parameters 197

Basic Error Handling with Exceptions 202

Chapter 5: Classes 217

Declaring and Instantiating a Class 221

Instance Fields 225

Instance Methods 227

Using the this Keyword 228

Access Modifiers 235

Properties 237

Constructors 254

Static Members 265

Extension Methods 275

Encapsulating the Data 277

Nested Classes 281

Partial Classes 284

Chapter 6: Inheritance 289

Derivation 290

Overriding the Base Class 302

Abstract Classes 314

All Classes Derive from System.Object 320

Verifying the Underlying Type with the is Operator 321

Conversion Using the as Operator 322

Chapter 7: Interfaces 325

Introducing Interfaces 326

Polymorphism through Interfaces 327

Interface Implementation 332

Converting between the Implementing Class and Its Interfaces 338

Interface Inheritance 338

Multiple Interface Inheritance 341

Extension Methods on Interfaces 341

Implementing Multiple Inheritance via Interfaces 343

Versioning 346

Interfaces Compared with Classes 347

Interfaces Compared with Attributes 349

Chapter 8: Value Types 351

Structs 355

Boxing 362

Enums 371

Chapter 9: Well-Formed Types 383

Overriding object Members 383

Operator Overloading 395

Referencing Other Assemblies 403

Defining Namespaces 409

XML Comments 413

Garbage Collection 418

Resource Cleanup 421

Lazy Initialization 429

Chapter 10: Exception Handling 433

Multiple Exception Types 433

Catching Exceptions 436

General Catch Block 440

Guidelines for Exception Handling 443

Defining Custom Exceptions 446

Rethrowing a Wrapped Exception 449

Chapter 11: Generics 455

C# without Generics 456

Introducing Generic Types 461

Constraints 473

Generic Methods 486

Covariance and Contravariance 491

Generic Internals 498

Chapter 12: Delegates and Lambda Expressions 505

Introducing Delegates 506

Lambda Expressions 516

Anonymous Methods 522

General-Purpose Delegates: System.Func and System.Action 524

Chapter 13: Events 543

Coding the Observer Pattern with Multicast Delegates 544

Events 558

Chapter 14: Collection Interfaces with Standard Query Operators 571

Anonymous Types and Implicitly Typed Local Variables 572

Collection Initializers 578

What Makes a Class a Collection: IEnumerable 582

Standard Query Operators 588

Chapter 15: LINQ with Query Expressions 621

Introducing Query Expressions 622

Query Expressions Are Just Method Invocations 640

Chapter 16: Building Custom Collections 643

More Collection Interfaces 644

Primary Collection Classes 646

Providing an Indexer 663

Returning Null or an Empty Collection 666

Iterators 667

Chapter 17: Reflection, Attributes, and Dynamic Programming 683

Reflection 684

nameof Operator 694

Attributes 696

Programming with Dynamic Objects 719

Chapter 18: Multithreading 731

Multithreading Basics 734

Working with System.Threading 741

Asynchronous Tasks 749

Canceling a Task 768

The Task-Based Asynchronous Pattern 775

Executing Loop Iterations in Parallel 798

Running LINQ Queries in Parallel 809

Chapter 19: Thread Synchronization 815

Why Synchronization? 817

Timers 845

Chapter 20: Platform Interoperability and Unsafe Code 849

Platform Invoke 850

Pointers and Addresses 862

Executing Unsafe Code via a Delegate 872

Using the Windows Runtime Libraries from C# 873

Chapter 21: The Common Language Infrastructure 877

Defining the Common Language Infrastructure 878

CLI Implementations 879

C# Compilation to Machine Code 879

Runtime 883

Application Domains 888

Assemblies, Manifests, and Modules 888

Common Intermediate Language 891

Common Type System 892

Common Language Specification 893

Base Class Library 893

Metadata 894

Appendix A: Downloading and Installing the C# Compiler and CLI Platform 897

Microsoft’s .NET 897

Appendix B: Tic-Tac-Toe Source Code Listing 903

Index 909

Index of 6.0 Topics 953

Index of 5.0 Topics 955

Index of 4.0 Topics 959

Index of 3.0 Topics 965

Erscheint lt. Verlag 8.10.2015
Verlagsort Boston
Sprache englisch
Maße 170 x 233 mm
Gewicht 1550 g
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Informatik Software Entwicklung Objektorientierung
ISBN-10 0-13-414104-0 / 0134141040
ISBN-13 978-0-13-414104-6 / 9780134141046
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Mehr entdecken
aus dem Bereich
objektorientierte Entwicklung modularer Maschinen für die digitale …

von Thomas Schmertosch; Markus Krabbes; Christian Zinke-Wehlmann

Buch | Hardcover (2024)
Hanser (Verlag)
44,99
Entwicklung von GUIs für verschiedene Betriebssysteme

von Achim Lingott

Buch (2023)
Hanser, Carl (Verlag)
39,99
Principles and Practice Using C++

von Bjarne Stroustrup

Buch | Softcover (2024)
Addison Wesley (Verlag)
85,95