Home > Store > Programming > C#

The C# Programming Language, 3rd Edition

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

The C# Programming Language, 3rd Edition

Book

  • This product currently is not for sale.
Not for Sale

eBook (Watermarked)

  • Your Price: $28.79
  • List Price: $35.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 discretely watermarking it with your name, making it uniquely yours.

Description

  • Copyright 2009
  • Dimensions: 7-3/8 X 9-1/8
  • Pages: 784
  • Edition: 3rd
  • Book
  • ISBN-10: 0-321-56299-2
  • ISBN-13: 978-0-321-56299-9

“Based on my own experience, I can safely say that every .NET developer who reads this will have at least one ‘aha’ moment and will be a better developer for it.”

–From the Foreword by Don Box

The popular C# programming language combines the high productivity of rapid application development languages with the raw power of C and C++. Now, C# 3.0 adds functional programming techniques and LINQ, Language INtegrated Query. The C# Programming Language, Third Edition, is the authoritative and annotated technical reference for C# 3.0.

Written by Anders Hejlsberg, the language’s architect, and his colleagues, Mads Torgersen, Scott Wiltamuth, and Peter Golde, this volume has been completely updated and reorganized for C# 3.0. The book provides the complete specification of the language, along with descriptions, reference materials, code samples, and annotations from nine prominent C# gurus.

The many annotations–a new feature in this edition–bring a depth and breadth of understanding rarely found in any programming book. As the main text of the book introduces the concepts of the C# language, cogent annotations explain why they are important, how they are used, how they relate to other languages, and even how they evolved.

This book is the definitive, must-have reference for any developer who wants to understand C#.

Sample Content

Online Sample Chapter

Using Expressions in C#

Sample Pages

Download the sample pages

Table of Contents

Foreword xi

Preface xiii

About the Authors xv

About the Annotators xvii

 

Chapter 1: Introduction 1

1.1 Hello, World 2

1.2 Program Structure 4

1.3 Types and Variables 6

1.4 Expressions 10

1.5 Statements 13

1.6 Classes and Objects 18

1.7 Structs 41

1.8 Arrays 43

1.9 Interfaces 46

1.10 Enums 48

1.11 Delegates 49

1.12 Attributes 53

Chapter 2: Lexical Structure 55

2.1 Programs 55

2.2 Grammars 55

2.3 Lexical Analysis 57

2.4 Tokens 61

2.5 Preprocessing Directives 74

Chapter 3: Basic Concepts 87

3.1 Application Start-Up 87

3.2 Application Termination 88

3.3 Declarations 89

3.4 Members 92

3.5 Member Access 95

3.6 Signatures and Overloading 104

3.7 Scopes 106

3.8 Namespace and Type Names 112

3.9 Automatic Memory Management 116

3.10 Execution Order 121

Chapter 4: Types 123

4.1 Value Types 124

4.2 Reference Types 135

4.3 Boxing and Unboxing 137

4.4 Constructed Types 141

4.5 Type Parameters 145

4.6 Expression Tree Types 146

Chapter 5: Variables 149

5.1 Variable Categories 149

5.2 Default Values 154

5.3 Definite Assignment 155

5.4 Variable References 171

5.5 Atomicity of Variable References 172

Chapter 6: Conversions 173

6.1 Implicit Conversions 174

6.2 Explicit Conversions 180

6.3 Standard Conversions 188

6.4 User-Defined Conversions 188

6.5 Anonymous Function Conversions 193

6.6 Method Group Conversions 200

Chapter 7: Expressions 203

7.1 Expression Classifications 203

7.2 Operators 206

7.3 Member Lookup 214

7.4 Function Members 217

7.5 Primary Expressions 238

7.6 Unary Operators 280

7.7 Arithmetic Operators 285

7.8 Shift Operators 295

7.9 Relational and Type-Testing Operators 297

7.10 Logical Operators 307

7.11 Conditional Logical Operators 309

7.12 The Null Coalescing Operator 311

7.13 Conditional Operator 313

7.14 Anonymous Function Expressions 314

7.15 Query Expressions 324

7.16 Assignment Operators 339

7.17 Expressions 344

7.18 Constant Expressions 344

7.19 Boolean Expressions 346

Chapter 8: Statements 347

8.1 End Points and Reachability 348

8.2 Blocks 350

8.3 The Empty Statement 351

8.4 Labeled Statements 352

8.5 Declaration Statements 353

8.6 Expression Statements 357

8.7 Selection Statements 358

8.8 Iteration Statements 364

8.9 Jump Statements 373

8.10 The try Statement 380

8.11 The checked and unchecked Statements 385

8.12 The lock Statement 385

8.13 The using Statement 387

8.14 The yield Statement 390

Chapter 9: Namespaces 393

9.1 Compilation Units 393

9.2 Namespace Declarations 394

9.3 Extern Aliases 395

9.4 Using Directives 396

9.5 Namespace Members 403

9.6 Type Declarations 403

9.7 Namespace Alias Qualifiers 404

Chapter 10: Classes 407

10.1 Class Declarations 407

10.2 Partial Types 420

10.3 Class Members 429

10.4 Constants 443

10.5 Fields 445

10.6 Methods 455

10.7 Properties 478

10.8 Events 491

10.9 Indexers 498

10.10 Operators 503

10.11 Instance Constructors 510

10.12 Static Constructors 518

10.13 Destructors 520

10.14 Iterators 522

Chapter 11: Structs 537

11.1 Struct Declarations 537

11.2 Struct Members 539

11.3 Class and Struct Differences 539

11.4 Struct Examples 547

Chapter 12: Arrays 553

12.1 Array Types 553

12.2 Array Creation 555

12.3 Array Element Access 556

12.4 Array Members 556

12.5 Array Covariance 556

12.6 Array Initializers 557

Chapter 13: Interfaces 561

13.1 Interface Declarations 561

13.2 Interface Members 564

13.3 Fully Qualified Interface Member Names 569

13.4 Interface Implementations 570

Chapter 14: Enums 585

14.1 Enum Declarations 585

14.2 Enum Modifiers 586

14.3 Enum Members 586

14.4 The System.Enum Type 589

14.5 Enum Values and Operations 590

Chapter 15: Delegates 591

15.1 Delegate Declarations 592

15.2 Delegate Compatibility 595

15.3 Delegate Instantiation 595

15.4 Delegate Invocation 596

Chapter 16: Exceptions 599

16.1 Causes of Exceptions 599

16.2 The System.Exception Class 600

16.3 How Exceptions Are Handled 600

16.4 Common Exception Classes 601

Chapter 17: Attributes 603

17.1 Attribute Classes 603

17.2 Attribute Specification 607

17.3 Attribute Instances 613

17.4 Reserved Attributes 615

17.5 Attributes for Interoperation 621

Chapter 18: Unsafe Code 623

18.1 Unsafe Contexts 624

18.2 Pointer Types 627

18.3 Fixed and Moveable Variables 630

18.4 Pointer Conversions 631

18.5 Pointers in Expressions 633

18.6 The fixed Statement 640

18.7 Fixed-Size Buffers 645

18.8 Stack Allocation 648

18.9 Dynamic Memory Allocation 649

Appendix A: Documentation Comments 653

A.1 Introduction 653

A.2 Recommended Tags 655

A.3 Processing the Documentation File 666

A.4 An Example 672

Appendix B: Grammar 679

B.1 Lexical Grammar 679

B.2 Syntactic Grammar 689

B.3 Grammar Extensions for Unsafe Code 720

Appendix C: References 725

Index 727

Updates

Submit Errata

More Information

ONE MONTH ACCESS!

WITH PURCHASE


Get unlimited 30-day access to thousands of Books & Training Videos about technology, professional development and digital media If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months.