Home > Store

Essential C# 4.0, 3rd Edition

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

Essential C# 4.0, 3rd Edition

Book

  • Sorry, this book is no longer in print.
Not for Sale

About

Features

  • An extremely well-written and well-organized guide to C# 4.0, which will appeal to programmers at all levels of experience
  • Offers complete, in-depth coverage of all the new features of C# 4.0, including two new chapters on multithreading
  • Concise yet deep coverage with no fluff
  • Appeals equally to programmers new to C# as well as those who have used a previous version of C#
  • Will publish day and date with C# 4.0
  • Instructor resources are available for this title through the Pearson IRC (instructor resource center) and will include Power Point slides, exercises, and answers for each chapter
  • Description

    • Copyright 2010
    • Dimensions: 7" x 9-1/8"
    • Pages: 984
    • Edition: 3rd
    • Book
    • ISBN-10: 0-321-69469-4
    • ISBN-13: 978-0-321-69469-0

    Essential C# 4.0 is a well-organized,“no-fluff” guide to all versions of C# for programmers at all levels of C# experience. This fully updated edition shows how to make the most of C# 4.0’s new features and programming patterns to write code that is simple, yet powerful.

    This edition contains two new chapters on parallel programming, multi­threading, and concurrency, as well as extensive coverage of new C# 4.0 features: dynamic typing, variance, optional/named parameters, and many other new topics.

    Mark Michaelis covers the C# language in depth, illustrating key constructs with succinct, downloadable code examples. Graphical “mind maps” at the beginning of each chapter show what material is covered and how individual topics interrelate. Topics intended for beginners and advanced readers are clearly marked, and the book includes indexes of C# versions (2.0, 3.0, and 4.0), which make it easy for readers to reference topics specific to a given release of C#.

    Following an introduction to C#, readers learn about 

    • Best practices for object-oriented programming in C#
    • C# primitive data types, value and reference types, implicitly typed variables, anonymous types, plus dynamic typing in C# 4.0
    • Methods and parameters–including extension methods, partial meth­ods, and C# 4.0’s optional and named parameters
    • Generics, concurrent collections, and custom collections with iterators
    • Delegates, events, and lambda expressions
    • Collection interfaces and standard query operators
    • Query expressions and the tree expressions on which LINQ providers are based
    • Reflection, attributes, and dynamic programming
    • Parallel Query Processing with PLINQ
    • Multithreaded programming with the Task Parallel Library
    • Platform interoperability and unsafe code
    • The Common Language Infrastructure that underlies C# 

    Whether you’re just starting out, are an experienced developer moving to C#, or are a seasoned C# programmer seeking to master C# 4.0’s most valuable enhancements, Essential C# 4.0 will help you write high-quality, highly effective code.

    Extras

    Related Article

    Essential C#: An Interview with Mark Michaelis

    Author's Site

    Please visit the author's web site at http://intelliTechture.com/EssentialCSharp.

    Sample Content

    Online Sample Chapter

    Essential C# 4.0: Delegates and Lambda Expressions

    Sample Pages

    Download the sample pages (includes Chapter 12 and Index)

    Table of Contents

    Contents of C# 4.0 Topics xxv

    Figures xxvii

    Tables xxix

    Foreword xxxi

    Preface xxxv

    Acknowledgments xlvii

    About the Author li

     

    Chapter 1: Introducing C# 1

    Hello, World 2

    C# Syntax Fundamentals 4

    Working with Variables 12

    Console Input and Output 16

    Comments 20

    Managed Execution and the Common Language Infrastructure 23

    C# and .NET Versioning 26

    Common Intermediate Language and ILDASM 27

    Summary 30

    Chapter 2: Data Types 31

    Fundamental Numeric Types 32

    More Fundamental Types 40

    null and void 51

    Categories of Types 55

    Nullable Modifier 57

    Conversions between Data Types 58

    Arrays 64

    Summary 81

    Chapter 3: Operators and Control Flow 83

    Operators 84

    Introducing Flow Control 98

    Code Blocks ({}) 105

    Scope and Declaration Space 107

    Boolean Expressions 109

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

    Control Flow Statements, Continued 121

    Jump Statements 132

    C# Preprocessor Directives 138

    Summary 145

    Chapter 4: Methods and Parameters 149

    Calling a Method 150

    Declaring a Method 157

    The using Directive 161

    Returns and Parameters on Main() 165

    Parameters 168

    Recursion 176

    Method Overloading 179

    Optional Parameters 182

    Basic Error Handling with Exceptions 186

    Summary 199

    Chapter 5: Classes 201

    Declaring and Instantiating a Class 205

    Instance Fields 209

    Instance Methods 211

    Using the this Keyword 213

    Access Modifiers 220

    Properties 222

    Constructors 236

    Static Members 247

    Extension Methods 256

    Encapsulating the Data 258

    Nested Classes 260

    Partial Classes 262

    Summary 267

    Chapter 6: Inheritance 269

    Derivation 270

    Overriding the Base Class 281

    Abstract Classes 293

    All Classes Derive from System.Object 299

    Verifying the Underlying Type with the is Operator 301

    Conversion Using the as Operator 302

    Summary 303

    Chapter 7: Interfaces 305

    Introducing Interfaces 306

    Polymorphism through Interfaces 307

    Interface Implementation 312

    Converting between the Implementing Class and Its

    Interfaces 318

    Interface Inheritance 318

    Multiple Interface Inheritance 321

    Extension Methods on Interfaces 322

    Implementing Multiple Inheritance via Interfaces 323

    Versioning 326

    Interfaces Compared with Classes 328

    Summary 329

    Chapter 8: Value Types 331

    Structs 332

    Boxing 339

    Enums 346

    Summary 356

    Chapter 9: Well-Formed Types 357

    Overriding object Members 357

    Operator Overloading 369

    Referencing Other Assemblies 377

    Defining Namespaces 382

    XML Comments 385

    Garbage Collection 390

    Resource Cleanup 393

    Lazy Initialization 400

    Summary 403

    Chapter 10: Exception Handling 405

    Multiple Exception Types 405

    Catching Exceptions 407

    General Catch Block 409

    Guidelines for Exception Handling 411

    Defining Custom Exceptions 414

    Summary 419

    Chapter 11: Generics 421

    C# without Generics 422

    Introducing Generic Types 427

    Constraints 439

    Generic Methods 453

    Covariance and Contravariance 457

    Generic Internals 463

    Summary 467

    Chapter 12: Delegates and Lambda Expressions 469

    Introducing Delegates 470

    Anonymous Methods 480

    System-Defined Delegates: Func<> 483

    Lambda Expressions 486

    Summary 506

    Chapter 13: Events 507

    Coding the Observer Pattern with Multicast Delegates 508

    Events 523

    Summary 533

    Chapter 14: Collection Interfaces with Standard Query Operators 535

    Anonymous Types and Implicitly Typed Local Variables 536

    Collection Initializers 543

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

    Standard Query Operators 552

    Summary 586

    Chapter 15: LINQ with Query Expressions 589

    Introducing Query Expressions 590

    Query Expressions as Method Invocations 608

    Summary 609

    Chapter 16: Building Custom Collections 611

    More Collection Interfaces 612

    Primary Collection Classes 617

    Providing an Index Operator 630

    Returning Null or an Empty Collection 634

    Iterators 634

    Summary 650

    Chapter 17: Reflection, Attributes, and Dynamic Programming 651

    Reflection 652

    Attributes 663

    Programming with Dynamic Objects 688

    Summary 699

    Chapter 18: Multithreading 701

    Running and Controlling a Separate Thread 706

    Executing Iterations in Parallel 724

    Running LINQ Queries in Parallel 734

    Multithreading before .NET Framework 4 738

    Unhandled Exceptions on the AppDomain 744

    Summary 746

    Chapter 19: Synchronization and More Multithreading Patterns 749

    Synchronization 750

    Timers 778

    Asynchronous Programming Model 783

    Asynchronous Delegate Invocation 797

    Event-Based Asynchronous Pattern (EAP) 801

    Background Worker Pattern 804

    Windows UI Programming 809

    Summary 814

    Chapter 20: Platform Interoperability and Unsafe Code 815

    Platform Invoke 816

    Pointers and Addresses 830

    Summary 839

    Chapter 21: The Common Language Infrastructure 843

    Defining the Common Language Infrastructure (CLI) 844

    CLI Implementations 845

    C# Compilation to Machine Code 847

    Runtime 849

    Application Domains 854

    Assemblies, Manifests, and Modules 855

    Common Intermediate Language (CIL) 858

    Common Type System (CTS) 858

    Common Language Specification (CLS) 859

    Base Class Library (BCL) 860

    Metadata 860

    Summary 862

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

    Platform 865

    Appendix B: Full Source Code Listings 869

    Appendix C: Concurrent Classes from System.Collections.Concurrent 895

    Appendix D: C# 2.0 Topics 899

    Appendix E: C# 3.0 Topics 903

    Appendix F: C# 4.0 Topics 905

    Index 907

    More Information

    InformIT Promotional Mailings & Special Offers

    I would like to receive exclusive offers and hear about products from InformIT and its family of brands. I can unsubscribe at any time.

    Overview


    Pearson Education, Inc., 221 River Street, Hoboken, New Jersey 07030, (Pearson) presents this site to provide information about products and services that can be purchased through this site.

    This privacy notice provides an overview of our commitment to privacy and describes how we collect, protect, use and share personal information collected through this site. Please note that other Pearson websites and online products and services have their own separate privacy policies.

    Collection and Use of Information


    To conduct business and deliver products and services, Pearson collects and uses personal information in several ways in connection with this site, including:

    Questions and Inquiries

    For inquiries and questions, we collect the inquiry or question, together with name, contact details (email address, phone number and mailing address) and any other additional information voluntarily submitted to us through a Contact Us form or an email. We use this information to address the inquiry and respond to the question.

    Online Store

    For orders and purchases placed through our online store on this site, we collect order details, name, institution name and address (if applicable), email address, phone number, shipping and billing addresses, credit/debit card information, shipping options and any instructions. We use this information to complete transactions, fulfill orders, communicate with individuals placing orders or visiting the online store, and for related purposes.

    Surveys

    Pearson may offer opportunities to provide feedback or participate in surveys, including surveys evaluating Pearson products, services or sites. Participation is voluntary. Pearson collects information requested in the survey questions and uses the information to evaluate, support, maintain and improve products, services or sites, develop new products and services, conduct educational research and for other purposes specified in the survey.

    Contests and Drawings

    Occasionally, we may sponsor a contest or drawing. Participation is optional. Pearson collects name, contact information and other information specified on the entry form for the contest or drawing to conduct the contest or drawing. Pearson may collect additional personal information from the winners of a contest or drawing in order to award the prize and for tax reporting purposes, as required by law.

    Newsletters

    If you have elected to receive email newsletters or promotional mailings and special offers but want to unsubscribe, simply email information@informit.com.

    Service Announcements

    On rare occasions it is necessary to send out a strictly service related announcement. For instance, if our service is temporarily suspended for maintenance we might send users an email. Generally, users may not opt-out of these communications, though they can deactivate their account information. However, these communications are not promotional in nature.

    Customer Service

    We communicate with users on a regular basis to provide requested services and in regard to issues relating to their account we reply via email or phone in accordance with the users' wishes when a user submits their information through our Contact Us form.

    Other Collection and Use of Information


    Application and System Logs

    Pearson automatically collects log data to help ensure the delivery, availability and security of this site. Log data may include technical information about how a user or visitor connected to this site, such as browser type, type of computer/device, operating system, internet service provider and IP address. We use this information for support purposes and to monitor the health of the site, identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents and appropriately scale computing resources.

    Web Analytics

    Pearson may use third party web trend analytical services, including Google Analytics, to collect visitor information, such as IP addresses, browser types, referring pages, pages visited and time spent on a particular site. While these analytical services collect and report information on an anonymous basis, they may use cookies to gather web trend information. The information gathered may enable Pearson (but not the third party web trend services) to link information with application and system log data. Pearson uses this information for system administration and to identify problems, improve service, detect unauthorized access and fraudulent activity, prevent and respond to security incidents, appropriately scale computing resources and otherwise support and deliver this site and its services.

    Cookies and Related Technologies

    This site uses cookies and similar technologies to personalize content, measure traffic patterns, control security, track use and access of information on this site, and provide interest-based messages and advertising. Users can manage and block the use of cookies through their browser. Disabling or blocking certain cookies may limit the functionality of this site.

    Do Not Track

    This site currently does not respond to Do Not Track signals.

    Security


    Pearson uses appropriate physical, administrative and technical security measures to protect personal information from unauthorized access, use and disclosure.

    Children


    This site is not directed to children under the age of 13.

    Marketing


    Pearson may send or direct marketing communications to users, provided that

    • Pearson will not use personal information collected or processed as a K-12 school service provider for the purpose of directed or targeted advertising.
    • Such marketing is consistent with applicable law and Pearson's legal obligations.
    • Pearson will not knowingly direct or send marketing communications to an individual who has expressed a preference not to receive marketing.
    • Where required by applicable law, express or implied consent to marketing exists and has not been withdrawn.

    Pearson may provide personal information to a third party service provider on a restricted basis to provide marketing solely on behalf of Pearson or an affiliate or customer for whom Pearson is a service provider. Marketing preferences may be changed at any time.

    Correcting/Updating Personal Information


    If a user's personally identifiable information changes (such as your postal address or email address), we provide a way to correct or update that user's personal data provided to us. This can be done on the Account page. If a user no longer desires our service and desires to delete his or her account, please contact us at customer-service@informit.com and we will process the deletion of a user's account.

    Choice/Opt-out


    Users can always make an informed choice as to whether they should proceed with certain services offered by InformIT. If you choose to remove yourself from our mailing list(s) simply visit the following page and uncheck any communication you no longer want to receive: www.informit.com/u.aspx.

    Sale of Personal Information


    Pearson does not rent or sell personal information in exchange for any payment of money.

    While Pearson does not sell personal information, as defined in Nevada law, Nevada residents may email a request for no sale of their personal information to NevadaDesignatedRequest@pearson.com.

    Supplemental Privacy Statement for California Residents


    California residents should read our Supplemental privacy statement for California residents in conjunction with this Privacy Notice. The Supplemental privacy statement for California residents explains Pearson's commitment to comply with California law and applies to personal information of California residents collected in connection with this site and the Services.

    Sharing and Disclosure


    Pearson may disclose personal information, as follows:

    • As required by law.
    • With the consent of the individual (or their parent, if the individual is a minor)
    • In response to a subpoena, court order or legal process, to the extent permitted or required by law
    • To protect the security and safety of individuals, data, assets and systems, consistent with applicable law
    • In connection the sale, joint venture or other transfer of some or all of its company or assets, subject to the provisions of this Privacy Notice
    • To investigate or address actual or suspected fraud or other illegal activities
    • To exercise its legal rights, including enforcement of the Terms of Use for this site or another contract
    • To affiliated Pearson companies and other companies and organizations who perform work for Pearson and are obligated to protect the privacy of personal information consistent with this Privacy Notice
    • To a school, organization, company or government agency, where Pearson collects or processes the personal information in a school setting or on behalf of such organization, company or government agency.

    Links


    This web site contains links to other sites. Please be aware that we are not responsible for the privacy practices of such other sites. We encourage our users to be aware when they leave our site and to read the privacy statements of each and every web site that collects Personal Information. This privacy statement applies solely to information collected by this web site.

    Requests and Contact


    Please contact us about this Privacy Notice or if you have any requests or questions relating to the privacy of your personal information.

    Changes to this Privacy Notice


    We may revise this Privacy Notice through an updated posting. We will identify the effective date of the revision in the posting. Often, updates are made to provide greater clarity or to comply with changes in regulatory requirements. If the updates involve material changes to the collection, protection, use or disclosure of Personal Information, Pearson will provide notice of the change through a conspicuous notice on this site or other appropriate way. Continued use of the site after the effective date of a posted revision evidences acceptance. Please contact us if you have questions or concerns about the Privacy Notice or any objection to any revisions.

    Last Update: November 17, 2020