The C# Programming Language, 3rd Edition (Microsoft .net Development Series) / Edition 3

Hardcover (Print)
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Hardcover)
  • All (11) from $1.99   
  • New (3) from $59.99   
  • Used (8) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$59.99
Seller since 2011

Feedback rating:

(867)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

New
Brand new and unread! Join our growing list of satisfied customers!

Ships from: Phoenix, MD

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$60.00
Seller since 2014

Feedback rating:

(162)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
$60.00
Seller since 2014

Feedback rating:

(162)

Condition: New
Brand new.

Ships from: acton, MA

Usually ships in 1-2 business days

  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by

Overview

“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#.

Read More Show Less

Product Details

  • ISBN-13: 9780321562999
  • Publisher: Addison-Wesley
  • Publication date: 10/22/2008
  • Series: Microsoft .net Development Series
  • Edition description: Annotated Edition for C# 3.0
  • Edition number: 3
  • Pages: 754
  • Product dimensions: 7.60 (w) x 9.40 (h) x 1.70 (d)

Meet the Author

Anders Hejlsberg is a programming legend. He is the architect of the C# language and a Microsoft Technical Fellow. He joined Microsoft in 1996, following a 13-year career at Borland, where he was the chief architect of Delphi and Turbo Pascal.

Mads Torgersen is a senior program manager at Microsoft. As the program manager for the C# language, he runs the C# language design meetings and maintains the C# language specification. Prior to joining Microsoft in 2005, Mads was an associate professor at the University of Aarhus, teaching and researching object-oriented programming languages. There, he led the group that designed and implemented generic wildcards for the Java Programming Language.

Scott Wiltamuth is partner program manager for Visual Studio. While at Microsoft, he has worked on a wide range of developer-oriented projects, including Visual Basic, VBScript, JScript, Visual J++, and Visual C#. Scott is one of the designers of the C# language, and holds bachelor’s and master’s degrees in computer science from Stanford University.

Before leaving Microsoft, Peter Golde served as the lead developer of Microsoft’s C# compiler. As the primary Microsoft representative on the ECMA committee that standardized C#, he led the implementation of the compiler and worked on the language design.

Read More Show Less

Read an Excerpt

The C# project started almost ten years ago, in December 1998, with the goal of creating a simple, modern, object-oriented, and type-safe programming language for the new and yet-to-be-named .NET platform. Since then, C# has come a long way. The language is now in use by more than one million programmers, and it has been released in three versions, each of which added several major new features.

This book, too, is in its third edition. A complete technical specification of the C# programming language, the third edition differs in several ways from the first two. Most notably, of course, it has been updated to cover all the new features of C# 3.0, including object and collection initializers, anonymous types, lambda expressions, query expressions, and partial methods. Most of these features are motivated by support for a more functional and declarative style of programming and, in particular, for Language Integrated Query (LINQ), which offers a unified approach to data querying across different kinds of data sources. LINQ, in turn, builds heavily on some of the features that were introduced in C# 2.0, including generics, iterators, and partial types.

Another change in the third edition is that the specification has been thoroughly reorganized. In the second edition of this book, the features introduced in C# 2.0 were described separately from the original C# 1.0 features. With a third helping of new features, this approach did not scale—the utility of the book would be impaired by the reader’s need to correlate information from three different parts. Instead, the material is now organized by topic, with features from all three language versions presented together in an integrated manner.

A final but important departure from earlier editions is the inclusion of annotations in the text. We are very fortunate to be able to provide insightful guidance, background, and perspective from some of the world’s leading experts in C# and .NET in the form of annotations throughout the book. We are very happy to see the annotations complement the core material and help the C# features spring to life.

Many people have been involved in the creation of the C# language. The language design team for C# 1.0 consisted of Anders Hejlsberg, Scott Wiltamuth, Peter Golde, Peter Sollich, and Eric Gunnerson. For C# 2.0, the language design team consisted of Anders Hejlsberg, Peter Golde, Peter Hallam, Shon Katzenberger, Todd Proebsting, and Anson Horton. Furthermore, the design and implementation of generics in C# and the .NET Common Language Runtime are based on the “Gyro” prototype built by Don Syme and Andrew Kennedy of Microsoft Research. C# 3.0 was designed by Anders Hejlsberg, Peter Hallam, Shon Katzenberger, Dinesh Kulkarni, Erik Meijer, Mads Torgersen, and Matt Warren.

It is impossible to acknowledge the many people who have influenced the design of C#, but we are nonetheless grateful to all of them. Nothing good gets designed in a vacuum, and the constant feedback we receive from our large and enthusiastic community of developers is invaluable.

C# has been, and continues to be, one of the most challenging and exciting projects on which we’ve worked. We hope you enjoy using C# as much as we enjoyed creating it.

Read More Show Less

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

Read More Show Less

Preface

The C# project started almost ten years ago, in December 1998, with the goal of creating a simple, modern, object-oriented, and type-safe programming language for the new and yet-to-be-named .NET platform. Since then, C# has come a long way. The language is now in use by more than one million programmers, and it has been released in three versions, each of which added several major new features.

This book, too, is in its third edition. A complete technical specification of the C# programming language, the third edition differs in several ways from the first two. Most notably, of course, it has been updated to cover all the new features of C# 3.0, including object and collection initializers, anonymous types, lambda expressions, query expressions, and partial methods. Most of these features are motivated by support for a more functional and declarative style of programming and, in particular, for Language Integrated Query (LINQ), which offers a unified approach to data querying across different kinds of data sources. LINQ, in turn, builds heavily on some of the features that were introduced in C# 2.0, including generics, iterators, and partial types.

Another change in the third edition is that the specification has been thoroughly reorganized. In the second edition of this book, the features introduced in C# 2.0 were described separately from the original C# 1.0 features. With a third helping of new features, this approach did not scale—the utility of the book would be impaired by the reader’s need to correlate information from three different parts. Instead, the material is now organized by topic, with features from all three language versions presented together in an integrated manner.

A final but important departure from earlier editions is the inclusion of annotations in the text. We are very fortunate to be able to provide insightful guidance, background, and perspective from some of the world’s leading experts in C# and .NET in the form of annotations throughout the book. We are very happy to see the annotations complement the core material and help the C# features spring to life.

Many people have been involved in the creation of the C# language. The language design team for C# 1.0 consisted of Anders Hejlsberg, Scott Wiltamuth, Peter Golde, Peter Sollich, and Eric Gunnerson. For C# 2.0, the language design team consisted of Anders Hejlsberg, Peter Golde, Peter Hallam, Shon Katzenberger, Todd Proebsting, and Anson Horton. Furthermore, the design and implementation of generics in C# and the .NET Common Language Runtime are based on the “Gyro” prototype built by Don Syme and Andrew Kennedy of Microsoft Research. C# 3.0 was designed by Anders Hejlsberg, Peter Hallam, Shon Katzenberger, Dinesh Kulkarni, Erik Meijer, Mads Torgersen, and Matt Warren.

It is impossible to acknowledge the many people who have influenced the design of C#, but we are nonetheless grateful to all of them. Nothing good gets designed in a vacuum, and the constant feedback we receive from our large and enthusiastic community of developers is invaluable.

C# has been, and continues to be, one of the most challenging and exciting projects on which we’ve worked. We hope you enjoy using C# as much as we enjoyed creating it.

Read More Show Less

Introduction

The C# project started almost five years ago, in December 1998, with the goal to create a simple, modern, object-oriented, and type-safe programming language for the new and yet to be named .NET platform. Since then, C# has come a long way. The language is now in use by hundreds of thousands of programmers, it has been standardized by both ECMA and ISO/IEC, and the development of a second version of the language with several major new features is close to completion.

This book is a complete technical specification of the C# programming language. The book is divided into three parts. Part I, "C# 1.0," includes Chapters 1-18 and describes the C# 1.0 language, as delivered in Visual Studio .NET 2002 and 2003. Part II, "C# 2.0," includes Chapters 19-23 and describes the four major new features of C# 2.0: generics, anonymous methods, iterators, and partial types. Part III, "Appendixes," describes documentation comments and summarizes the lexical and syntactic grammars found in Part I of the book. As of this writing, C# 2.0 is close to entering beta testing. Because C# 2.0 is still a work in progress, some of the new features described in the second part of the book might change in the final release. We do, however, expect any such changes to be minor.

Many people have been involved in the creation of the C# language. The language design team for C# 1.0 consisted of Anders Hejlsberg, Scott Wiltamuth, Peter Golde, Peter Sollich, and Eric Gunnerson. For C# 2.0, the language design team consisted of Anders Hejlsberg, Peter Golde, Peter Hallam, Shon Katzenberger, Todd Proebsting, and Anson Horton. Furthermore, the design and implementationof generics in C# and the .NET Common Language Runtime is based on the "Gyro" prototype built by Don Syme and Andrew Kennedy of Microsoft Research.

It is impossible to acknowledge all the people who have influenced the design of C#, but we are nonetheless grateful to all of them. Nothing good gets designed in a vacuum, and the constant feedback we receive from our large and enthusiastic user base is invaluable.

C# has been and continues to be one of the most challenging and exciting projects on which we've worked. We hope you enjoy using C# as much as we enjoyed creating it.

Anders Hejlsberg
Scott Wiltamuth
Peter Golde

Seattle, August 2003

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 2 Customer Reviews
  • Anonymous

    Posted April 11, 2009

    No text was provided for this review.

  • Anonymous

    Posted December 9, 2008

    No text was provided for this review.

Sort by: Showing all of 2 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)