Home > Store

C# For Experienced Programmers

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

C# For Experienced Programmers

Book

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

About

Features

  • For experienced student programmers—Focuses on the skills and techniques experienced student programmers want to learn, rather than the simple concepts they already know.
    • Enables students to utilize limited study time as effectively as possible, by leveraging the knowledge they already have.

  • 230 LIVE-CODE™ programs, 26,000+ lines of proven C# code—Teaches every key concept through live, working code.
    • Gives students the benefit of pedagogical methods that have helped over a million developers learn rapidly and well.

  • Proven Deitel LIVE-CODE™ techniques that enhance code readability and promote learning—Uses “Code Washing” to format programs in a carefully commented, open layout, and five-way color-coded syntax highlighting to highlight every program element students need to understand.
    • Makes it exceptionally easy for students to understand and learn from the books code examples.

  • 402 practical programming tips—Presents hundreds of tips for maximizing performance, interoperability, and reusability—Gives students practical, hard-won insights they would otherwise have to learn from real-world development projects.
    • Helps students become effective C# .NET developers as quickly as possible.

  • Powerful, highly relevant techniques—Covers ADO.NET, ASP.NET, XML processing, networking, multithreading, collection classes, and much more.
    • Helps students master C# programming techniques with exceptional power and broad applicability.

  • Introduction to Web services development—Includes detailed coverage of building Web services with C# and the Microsoft .NET platform.
    • Helps students master Web services, an area of development that is expected to remain in exceptionally high demand for years to come.

  • New mobile programming techniques—Includes a full chapter on developing wireless Internet applications with the brand-new Microsoft Mobile Internet Toolkit.
    • Prepares students to develop Web applications for wireless phones, pagers, PDAs, and other wireless devices—one of the fastest growing areas of Web development.

  • By Deitel & Associates, world-class college and corporate programming training specialists—Authored by an expert team that has helped millions of students and professionals master programming through books, multimedia, seminars, and live training sessions.
    • Gives students confidence that they are receiving information that is thorough, accurate, clear, and pedagogically proven.

Description

  • Copyright 2003
  • Dimensions: K
  • Pages: 1456
  • Edition: 1st
  • Book
  • ISBN-10: 0-13-046133-4
  • ISBN-13: 978-0-13-046133-9

The practicing programmer's DEITEL LIVE-CODE guide toC# and the powerful Microsoft .NET Framework.

C# for Experienced Programmers is written for programmers with backgrounds in C++, Visual Basic, Java or other high-level languages, who want to learn C# through the intermediate level. If you already own C# How To Program, 1/e, you should not purchase C# for Experienced Programmers. However, you may be interested in our ASP .NET with C# for Experienced Programmers, which will be published in Summer 2003. Students should not purchase C# for Experienced Programmers. Instead, students should purchase C# How To Program, 1/e, as it contains self-review exercises and other ancillary materials suitable for self-study and classroom use. We also recommend that everyone consider The Complete C# Training Course, 1/e, which includes C# How to Program, 1/e and the C# Cyber Classroom--an interactive, multimedia, Windows-based CD-ROM. The Complete Training Course offers a great value and provides a powerful learning tool for readers who want to pursue C# programming through the intermediate level.

Written for programmers with a background in C++, Visual Basic, Java or other high-level languages, this book applies the DEITEL signature LIVE-CODE approach to teaching programming and explores Microsoft's C# language in depth. This book presents important C# concepts in the context of fully tested programs, complete with syntax shading, detailed line-by-line descriptions and program outputs. The book features 230 LIVE-CODE programs that contain 26,006 lines of proven C# program code. In addition, the book includes 402 programming tips that help you build applications that are portable, reusable and optimized for performance.

Start with a concise introduction to C # fundamentals, then rapidly move on to more advanced topics, including Windows Forms, ADO .NET, ASP .NET, ASP .NET Web services, network programming and XML processing. Along the way you will enjoy the Deitels' classic treatment of object-based and object-oriented programming. When you are finished, you will have everything you need to build next-generation Windows applications, Web applications and XML Web services.

Dr. Harvey M. Deitel and Paul J. Deitel are the founders of Deitel & Associates, Inc., the internationally recognized IT content-creation and corporate-training organization. Together with their colleagues at Deitel & Associates, Inc., they have written the successful How to Program Series of college textbooks that hundreds of thousands of students throughout the world have used to master C, C++, Java, C#, Visual Basic .NET, Perl, Python, XML, and other languages.The DEITEL Developer Series is designed for practicing programmers. The series presents focused treatments of emerging technologies, including .NET, J2EE, Web services, and more. Each book in the series contains the same LIVE-CODE teaching methodology used so successfully in the Deitels' How to Program Series college textbooks and instructor-led, corporate-training courses. The DEITEL Developer Series includes a wide selection of books suitable for three types of readers:A Technical IntroductionBroad overviews of new technologies for programmers, technical managers and other technical professionalsA Programmer's Introduction Focused treatments of programming fundamentals for practicing programmers and for novicesFor Experienced Programmers Detailed treatments of language topics for experienced programmersDEITEL TESTIMONIALS
"Your book has sparked a passion in me for programming like no other."

—Scott Haynes

"Comprehensive, coherent, clear, and just plain FUN to work through!"

—James Huddleston

"I must say my favorite feature is the examples..."

—Ben Schrooten

"I have read many books and taken many training courses over the past 20 years, but this stands out as the absolute best!"

—Cindy Steele

Sample Content

Table of Contents



Preface.


 1. Introduction to .NET and C#.


 2. Introduction to the Visual Studio .NET IDE and C# Programming.


 3. Control Structures.


 4. Methods and Arrays.


 5. Object-Based Programming.


 6. Object-Oriented Programming: Inheritance.


 7. Object-Oriented Programming: Polymorphism.


 8. Exception Handling.


 9. Graphical User Interface Concepts: Part 1.


10. Graphical User Interface Concepts: Part 2.


11. Multithreading.


12. Strings, Characters and Regular Expressions.


13. Graphics and Multimedia.


14. Files and Streams.


15. Extensible Markup Language (XML).


16. Database, SQL and ADO .NET.


17. ASP .NET, Web Forms and Web Controls.


18. ASP .NET and Web Services.


19. Networking: Streams-Based Sockets and Datagrams.


20. Data Structures and Collections.


21. Accessibility.


22. Mobile Internet Toolkit.


Appendix A. Operator Precedence Chart.


Appendix B. Number Systems.


Appendix C. Career Opportunities.


Appendix D. Visual Studio .NET Debugger.


Appendix E. Generating Documentation in Visual Studio .NET.


Appendix F. ASCII Character Set.


Appendix G. Unicode®.


Appendix H. COM Integration.


Appendix I. Introduction to HyperText Markup Language 4: Part 1.


Appendix J. Introduction to HyperText Markup Language 4: Part 2.


Appendix K. Introduction to XHTML: Part 1.


Appendix L. Introduction to XHTML: Part 2.


Appendix M. HTML/XHTML Special Characters.


Appendix N. HTML/XHTML Colors.


Appendix O. Bit Manipulation.


Appendix P. Crystal Reports® for Visual Studio .NET.


Bibliography.


Index.

Preface

Preface

Live in fragments no longer. Only connect.

—Edward Morgan Forster

We wove a web in childhood,
A web of sunny air.

—Charlotte Bronte

Welcome to C# and the world of Windows, Internet and World-Wide-Web programming with Visual Studio .NET and the .NET platform! This book is the second in the new Deitel Developer Series, which presents leading-edge computing technologies to software developers and IT professionals.

C# (pronounced "C-sharp") was developed by Microsoft expressly for its .NET platform. C# provides the features that are most important to programmers, such as object-oriented programming, graphics, graphical-user-interface (GUI) components, exception handling, multithreading, multimedia (audio, images, animation and video), file processing, prepackaged data structures, database processing, Internet and World-Wide-Web-based multi-tier application development, networking, Web services and distributed computing. The language is appropriate for implementing Internet- and World-Wide-Web-based applications that integrate seamlessly with Windows-based applications.

The .NET platform offers powerful capabilities for software development and deployment, including language and platform independence. For example, developers writing code in any (or several) of the .NET languages (such as C#, Visual Basic .NET and Visual C++ .NET) can contribute components to the same software product. In addition to providing language independence, .NET extends program portability by enabling .NET applications to reside on, and communicate across, multiple platforms. This facilitates the creation and use of Web services, which are applications that expose functionality to clients via the Internet.

The .NET platform enables Web-based applications to be distributed to consumer-electronic devices, such as wireless phones and personal digital assistants (PDAs), as well as to desktop computers. The capabilities that Microsoft has incorporated into the .NET platform increase programmer productivity and decrease development time.

Who Should Read This Book

Deitel & Associates, Inc. has several C# publications, intended for various audiences. We provide information on www.deitel.com, here and inside this book's back cover to help you determine which publication is best for you.

Our first C# book, C# How to Program, was published as part of our How to Program Series, for college and university students. It provides a comprehensive treatment of C# and includes learning aids and extensive ancillary support. C# How to Program assumes that the reader has little or no programming experience. Early chapters focus on fundamental programming principles. The book builds on this to create increasingly complex and sophisticated programs that demonstrate how to use C# to create graphical user interfaces, networking applications, multithreaded applications, Web-based applications and more. We encourage professors and professionals to consider the C# Complete Training Course. This package includes C# How to Program as well as the C# Multimedia Cyber Classroom, an interactive multimedia CD-ROM that provides extensive e-Learning features. The C# Complete Training Course and C# Multimedia Cyber Classroom are discussed in detail later in this Preface.

Our third C# publication, C#: A Programmer's Introduction, is part of the new Deitel Developer Series, intended for professional software developers-from novices through experienced programmers. C#: A Programmer's Introduction is a part of the A Programmer's Introduction subseries, which is designed for programmers with little (or no) programming experience. The book begins with C# programming fundamentals. The core of C#: A Programmer's Introduction emphasizes achieving program clarity through the proven techniques of structured programming, object-based programming, object-oriented programming (OOP) and event-driven programming. The book provides a rigorous introduction to programming principles in general and to C# fundamentals, in particular. It continues with brief introductions to upper-level topics such as ASP .NET, ADO .NET, and Web services. Unlike the How to Program Series books, the Deitel Developer Series books do not include the extensive pedagogic features and ancillary support materials required for academic courses.

This book, C# for Experienced Programmers, is also part of the Deitel Developer Series. This publication is a part of the For Experienced Programmers subseries, designed for the experienced software developer who wants a deep treatment of a new technology with minimal, if any, introductory material. C# for Experienced Programmers delves deeply into the more sophisticated topics that are introduced briefly in C#: A Programmer's Introduction. There is considerable overlap between these books.

A fourth publication, ASP .NET with C# for Experienced Programmers, is forthcoming. This book was originally titled Advanced C# for Experienced Programmers.

Each of our C# books presents many complete, working C# programs and depicts their inputs and outputs in actual screen shots of running programs. This is our signature Live-Code approach—we present all concepts in the context of complete working programs. Each book's source code is available free for download at www.deitel.com.

Please examine both the Deitel Developer Series professional books and the How to Program Series textbooks to determine which best suits your needs. C#: A Programmer's Introduction and C# for Experienced Programmers are both derived from C# How to Program. Depending on your particular needs, you should purchase either one or both of these Deitel Developer Series books, or C# How to Program.

The C# books in the Deitel Developer Series were written after the first edition of C# How to Program. We added to each of these Deitel Developer Series books a chapter on the new Microsoft Mobile Internet Toolkit for our readers who wish to develop wireless Internet applications for cell phones, pagers and PDAs. This material will be added to the second edition of C# How to Program.

For a detailed listing of Deitel products and services, please see the "advertorial" pages at the back of this book and visit www.deitel.com. Readers may also want to register for our new Deitel Buzz Online e-mail newsletter (www.deitel.net/newsletter/subscribe.html), which provides information about our publications, company announcements, links to informative technical articles, programming tips, teaching tips, challenges and anecdotes.

As you proceed, if you would like to communicate with us, please send an e-mail to deitel@deitel.com—we always respond promptly. Please check our Web sites, www.deitel.com, www.prenhall.com/deitel and www.InformIT.com/deitel for frequent updates, errata, FAQs, etc. When sending an e-mail, please include the book's title and edition number. We sincerely hope that you enjoy learning C# with our publications.

Features of C# for Experienced Programmers

This edition contains many features, including:

  • Syntax Highlighting. This book uses five-way syntax highlighting to emphasize C# programming elements in a manner similar to that of Visual Studio .NET. Our syntax-highlighting conventions are as follows:
    • comments
    • keywords
    • literal values
    • errors and ASP .NET directives
    • text, class, method and variable names
  • "Code Washing." This is our term for the process we use to format the book's programs so that they have a carefully commented, open layout. The code is grouped into small, well-documented pieces. This greatly improves code readability-an especially important goal for us, considering that this book contains approximately 26,000 lines of code in 230 complete Live-Code programs.
  • Web Forms, Web Controls, and ASP .NET. The .NET platform enables developers to create robust, scalable Web-based applications. Microsoft's .NET server-side technology, Active Server Pages (ASP) .NET, allows programmers to build Web documents that respond to client requests. To enable interactive Web pages, server-side programs process information users input into HTML forms. ASP .NET is a significant departure from ASP 3.0, allowing developers to program Web-based applications using .NET's powerful object-oriented languages such as C# and Visual Basic .NET, rather than using only scripting languages. ASP .NET also provides enhanced visual programming capabilities, similar to those used in building Windows forms for desktop programs. Programmers can create Web pages visually, by dragging and dropping Web controls onto Web forms. Chapter 17, ASP .NET, Web Forms and Web Controls, introduces these powerful technologies.
  • Web Services and ASP .NET. MicrosoftUs .NET strategy embraces the Internet and Web as integral to software development and deployment. Web services technology enables information sharing, e-commerce and other interactions using standard Internet protocols and technologies, such as Hypertext Transfer Protocol (HTTP), Extensible Markup Language (XML) and Simple Object Access Protocol (SOAP). Web services enable programmers to package application functionality in a manner that turns the Web into a library of reusable software components. In Chapter 18, ASP .NET and Web Services, we present a Web service that allows users to manipulate "huge integers"Qintegers too large to be contained in C#Us built-in data types. In this example, a user enters two huge integers and presses buttons to invoke Web services that add, subtract and compare the two integers. We also present information related to Web services in Appendix P, Crystal Reports for Visual Studio .NET, which discusses a popular reporting program for database-intensive applications. Crystal Reports, which is integrated into Visual Studio .NET, provides the ability to expose a report as a Web service. The appendix provides introductory information and directs readers to a walkthrough of this process on the Crystal Decisions Web site, www.crystaldecisions.com/netzone
  • Object-Oriented Programming. Object-oriented programming is the most widely employed technique for developing robust, reusable software. This text offers a rich treatment of C#Us object-oriented programming features. Chapter 5, Object-Based Programming, introduces how to create classes and objects. These concepts are extended in Chapter 6, Object-Oriented Programming: Inheritance, which discusses how programmers can create powerful new classes quickly by "absorbing" the capabilities of existing classes. Chapter 7, Object-Oriented Programming: Polymorphism, familiarizes the reader with the crucial concepts of polymorphism, abstract classes, concrete classes and interfaces, which facilitate powerful manipulations among objects belonging to an inheritance hierarchy.
  • XML. Use of Extensible Markup Language (XML) is exploding in the software-development industry, in the e-business and e-commerce communities, and is pervasive throughout the .NET platform. Because XML is a platform-independent technology for describing data and for creating markup languages, XMLUs data portability integrates well with C#-based portable applications and services. Chapter 15, Extensible Markup Language (XML), introduces XML. In this chapter, we introduce basic XML markup and discuss the technologies such as DTDs and Schema, which are used to validate XML documentsU contents. We also explain how to manipulate XML documents programmatically using the Document Object Model (DOM*) and how to transform XML documents into other types of documents via Extensible Stylesheet Language Transformations (XSLT).
  • Multithreading. Computers enable programmers to perform many tasks in parallel (i.e., concurrently), such as printing documents, downloading files from a network and surfing the Web. Multithreading is the technology through which programmers can develop applications that perform concurrent tasks. Historically, a computer has contained a single, expensive processor, which its operating system would share among all applications. Today, processors are becoming increasingly inexpensive, making it possible to build affordable computers with many processors working in parallelQsuch computers are called multiprocessors. Multithreading is effective on both single-processor and multiprocessor systems. .NETUs multithreading capabilities make the platform and its related technologies better prepared to handle todayUs sophisticated multimedia-intensive, database-intensive, network-based, multiprocessor-based, distributed applications. Chapter 11, Multithreading, introduces this powerful capability.
  • ADO .NET. Databases store vast amounts of information that individuals and organizations must access to conduct business. As an evolution of Microsoft's ActiveX Data Objects (ADO) technology, ADO .NET represents a new approach for building applications that interact with databases. ADO .NET uses XML and an enhanced object model to provide developers with the tools they need to access and manipulate databases for large-scale, extensible, mission-critical multi-tier applications. Chapter 16, Database, SQL and ADO .NET, introduces the capabilities of ADO .NET and the Structured Query Language (SQL) to manipulate databases.
  • Wireless Development. By some estimates, about a billion people worldwide are using mobile devices, such as wireless phones and PDAs, and this number is increasing rapidly. To simplify the creation of Web content for mobile devices, Microsoft provides the Mobile Internet Toolkit (MIT). The MIT, which is built on ASP .NET, allows wireless content to be created using Visual Studio .NETUs object-oriented languages. One program can be created that will be compatible with a variety of devices and able to display different content based on the type of device (e.g., a wireless phone versus a PDA). Chapter 22, Mobile Internet Toolkit, introduces wireless Web application development.
  • Visual Studio .NET Debugger. Debuggers help programmers find and correct logic errors in program code. In Appendix D, Visual Studio .NET Debugger, we explain how to use key debugger features, such as setting "breakpoints" and "watches," stepping into and out of methods, and examining the method call stack.
  • COM (Component Object Model) Integration. Prior to the introduction of .NET, many organizations spent tremendous amounts of time and money creating reusable software components called COM components, which include ActiveX( controls and ActiveX DLLs (dynamic link libraries) for Windows applications. In Appendix H, COM Integration, we discuss some of the tools available in Visual Studio .NET for integrating these legacy components into .NET applications. This integration allows programmers to use existing sets of COM-based controls with .NET components.
  • XML Documentation. Documenting program code is crucial for software development, because different programmers often work on an application during the softwareUs lifecycle, which usually includes multiple versions and can span many years. If programmers document software code and methods, other programmers working on the application can learn and understand the logic underlying the code, thus saving time and avoiding misunderstandings. To automate documenting programs, Visual Studio .NET provides an XML tool for C# programmers. Appendix E, XML Documentation, explains how a programmer can insert comments in the code, which produces a separate file providing the code documentation.
  • Career Opportunities. Appendix C, Career Opportunities, introduces career services available on the Internet. We explore online career services from both the employerUs and employeeUs perspectives. We list many Web sites where readers can submit applications, search for jobs and review applicants. We also review services that build recruiting pages directly into e-businesses. One of our reviewers told us that he had used the Internet as a primary tool in a recent job search, and that this appendix would have helped him dramatically expand his search.
  • Unicode. As computer systems evolved worldwide, computer vendors developed numeric representations of character sets and special symbols for the local languages spoken in different countries. In some cases, different representations were developed for the same languages. Such disparate character sets hindered communication among computer systems. C# supports the Unicode Standard (maintained by a non-profit organization called the Unicode Consortium), which maintains a single character set that specifies unique numeric values for characters and special symbols in most of the worldUs languages. Appendix G, Unicode(, discusses the standard, overviews the Unicode Consortium Web site, www.unicode.org and presents a C# application that displays "Welcome to Unicode!" in several languages.
  • XHTML. The World Wide Web Consortium (W3C) has declared HTML to be a legacy technology that will undergo no further development. HTML is being replaced by the Extensible Hypertext Markup Language (XHTML)Qan XML-based technology that is rapidly becoming the standard for describing Web content. We use XHTML in Chapter 15, Extensible Markup Language (XML), and offer an introduction to the technology in Appendix K, Introduction to XHTML: Part 1, and Appendix L, Introduction to XHTML: Part 2. These appendices overview headers, images, lists, image maps and other features of this emerging markup language. (We also present a treatment of HTML in Appendices I and J, because ASP .NET, used in Chapters 17 and 18, generates HTML content).
  • Accessibility. Although the World Wide Web has become an important part of many peopleUs lives, the medium currently presents many challenges to people with disabilities. Individuals with hearing and visual impairments, in particular, have difficulty accessing multimedia-rich Web sites. In an attempt to improve this situation, the World Wide Web Consortium (W3C) launched the Web Accessibility Initiative (WAI), which provides guidelines for making Web sites accessible to people with disabilities. Chapter 21, Accessibility, describes these guidelines and highlights various products and services designed to improve the Web-browsing experiences of individuals with disabilities. For example, the chapter introduces VoiceXML and CallXML—two XML-based technologies for increasing the accessibility of Web-based content for people with visual impairments.
  • Bit Manipulation. Computers work with data in the form of binary digits, or bits, which can assume the values 1 or 0. Computer circuitry performs various simple bit manipulations, such as examining the value of a bit, setting the value of a bit and reversing a bit (from 1 to 0 or from 0 to 1). Operating systems, test-equipment, networking software and many other kinds of software require that programs communicate "directly with the hardware" by using bit manipulation. Appendix O, Bit Manipulation, overviews the bit manipulation capabilities that the .NET Framework provides.

Pedagogic Approach

C# for Experienced Programmers contains a rich collection of examples that have been tested on Windows 2000 and Windows XP. The book concentrates on the principles of good software engineering and stresses program clarity. We are educators who teach edge-of-the-practice topics in industry classrooms worldwide. We avoid arcane terminology and syntax specifications in favor of teaching by example. The text emphasizes good pedagogy.

We use fonts to distinguish between Visual Studio .NET's Integrated Development Environment (IDE) features (such as menu names and menu items) and other elements that appear in the IDE. Our convention is to emphasize IDE features in a sans-serif bold Helvetica font (e.g., Project menu) and to emphasize program text in a serif bold Courier font (e.g., bool x = true;).

Live-Code Teaching Approach

C# for Experienced Programmers is loaded with numerous Live-Code examples. This style exemplifies the way we teach and write about programming and is the focus of our multimedia Cyber Classrooms and Web-based training courses as well. Each new concept is presented in the context of a complete, working example that is followed by one or more windows showing the program's input/output dialog. We call this method of teaching and writing the Live-Code Approach. We use programming languages to teach programming languages. Reading the examples in the text is much like entering and running them on a computer. Readers have the option of downloading all of the book's code examples from www.deitel.com, under the Downloads/Resources link. Other links provide errata and answers to frequently asked questions.

World Wide Web Access

All of the source code for the examples in C# for Experienced Programmers (and our other publications) is available on the Internet as downloads from the following Web sites:

www.deitel.comwww.prenhall.com/deitel

Registration is quick and easy and these downloads are free. We suggest downloading all the examples, then running each program as you read the corresponding portion of the book. Make changes to the examples and immediately see the effects of those changes-this is a great way to improve your programming skills. Any instructions for running the examples assumes that the user is running Windows 2000 or Windows XP and is using Microsoft's Internet Information Services (IIS). Additional setup instructions for IIS and other software can be found at our Web sites along with the examples. Note: This is copyrighted material. Feel free to use it as you study, but you may not republish any portion of it in any form without explicit permission from Pearson and the authors.

Visual Studio .NET belongs to a family of products that are available for purchase and download from Microsoft. Visual Studio .NET, which includes C#, comes in four different editions-Academic, Professional, Enterprise Developer and Enterprise Architect. Visual Studio .NET Academic contains Visual Studio .NET Professional's features in addition to features designed for students and professors (e.g., an Assignment Manager that documents assignment submission, Application Publishing Tools that aid in the notification of assignments, code samples and more).

Microsoft also offers stand-alone products (Visual C# .NET Standard, Visual C++ .NET Standard and Visual Basic .NET Standard) for various .NET-languages. Each product provides an integrated development environment (similar to Visual Studio .NET) and a compiler. Visit msdn.microsoft.com/vstudio/howtobuy for descriptions and ordering information.

Objectives

Each chapter begins with objectives that inform readers of what to expect and gives them an opportunity, after reading the chapter, to determine whether they have met the intended goals.

Quotations

The chapter objectives are followed by sets of quotations. Some are humorous, some are philosophical and some offer interesting insights. We have found that readers enjoy relating the quotations to the chapter material. Many of the quotations are worth a "second look" after you read each chapter.

Outline

The chapter outline enables readers to approach the material in top-down fashion. Along with the chapter objectives, the outline helps users anticipate topics and set a comfortable and effective learning pace.

Approximately 26,000 Lines of Code in 230 Example Programs (with Program Outputs)

We present C# features in the context of complete, working C# programs. The programs range in size from just a few lines of code to substantial examples containing hundreds of lines of code. All examples are available as downloads from our Web site, www.deitel.com.

665 Illustrations/Figures

An abundance of charts, line drawings and program outputs is included.

402 Programming Tips

We have included programming tips to help readers focus on important aspects of program development. We highlight hundreds of these tips in the form of Good Programming Practices, Common Programming Errors, Testing and Debugging Tips, Performance Tips, Portability Tips, Software Engineering Observations and Look-and-Feel Observations. These tips and practices represent the best the authors have gleaned from many decades of programming and teaching experience. One of our customersQa mathematics majorQtold us that she feels this approach is like the highlighting of axioms, theorems and corollaries in mathematics books; it provides a foundation on which to build good software.

52 Good Programming Practices

Good Programming Practices are tips that call attention to techniques that will help developers produce programs that are clearer, more understandable and more maintainable.

131 Common Programming Errors

Developers learning a language tend to make certain kinds of errors frequently. Pointing out these Common Programming Errors reduces the likelihood that readers will make the same mistakes.

33 Testing and Debugging Tips

When we first designed this "tip type," we thought the tips would contain suggestions strictly for exposing bugs and removing them from programs. In fact, many of the tips describe aspects of C# that prevent "bugs" from getting into programs in the first place, thus simplifying the testing and debugging processes.

46 Performance Tips

Developers like to "turbo charge" their programs. We have included 29 Performance Tips that highlight opportunities for improving program performance-making programs run faster or minimizing the amount of memory that they occupy.

15 Portability Tips

We include Portability Tips to help developers write portable code and to provide insights on how C# achieves its high degree of portability.

96 Software Engineering Observations

The object-oriented programming paradigm necessitates a complete rethinking of the way we build software systems. C# is an effective language for achieving good software engineering. The Software Engineering Observations highlight architectural and design issues that affect the construction of software systems, especially large-scale systems.

25 Look-and-Feel Observations

We provide Look-and-Feel Observations to highlight graphical-user-interface conventions. These observations help developers design attractive, user-friendly graphical user interfaces that conform to industry norms.

Summary

Each chapter ends with a summary that helps readers review and reinforce key concepts.

Approximately 4,800 Index Entries (with approximately 6,150 Page References)

We have included an extensive Index. This resource enables readers to search for any term or concept by keyword. The Index is especially useful to practicing programmers who use the book as a reference.

"Double Indexing" of All C# Live-Code Examples

C# for Experienced Programmers has 152 Live-Code examples, which we have "double indexed." For every C# source-code program in the book, we took the file name with the .cs extension, such as ShowColors.cs, and indexed it both alphabetically (in this case, under "S") and as a subindex item under "Examples." This makes it easier to find examples using particular features.

C# Multimedia Cyber Classroom and The Complete C# Training Course

We have prepared an interactive, CD-ROM-based, software version of C# How to Program, called the C# Multimedia Cyber Classroom. This resource, ideal for corporate training and college courses, is loaded with interactive e-learning features. The Cyber Classroom is packaged with the C# How to Program textbook at a discount in The Complete C# Training Course. If you already have that book and would like to purchase the C# Multimedia Cyber Classroom separately, please visit www.InformIT.com/cyberclassrooms. The ISBN number for the C# Multimedia Cyber Classroom is 0-13-064587-7. Many Deitel Cyber Classrooms are available in CD-ROM and Web-based training formats.

The CD-ROM provides an introduction in which the authors overview the Cyber Classroom's features. The textbook's 204 Live-Code example C# programs truly "come alive" in the Cyber Classroom. If you are viewing a program and want to execute it, you simply click the lightning-bolt icon, and the program will run. You immediately will see-and hear, when working with audio-based multimedia programs-the program's output. Click the audio icon, and one of the authors will discuss the program and "walk you through" the code.

The Cyber Classroom also provides navigational aids, including extensive hyperlinking. The Cyber Classroom is browser based, so it remembers sections that you have visited recently and allows you to move forward or backward among those sections. The thousands of index entries are hyperlinked to their text occurrences. Furthermore, when you key in a term using the "find" feature, the Cyber Classroom will locate occurrences of that term throughout the text. The Table of Contents entries are "hot," so clicking a chapter name takes you immediately to that chapter.

Readers like the fact that solutions to approximately half the exercises in C# How to Program are included with the Cyber Classroom. Studying and running these extra programs is a great way for readers to enhance their learning experience.

Professionals and student users of our Cyber Classrooms tell us that they like the interactivity and that the Cyber Classroom is an effective reference due to its extensive hyperlinking and other navigational features. We received an e-mail from a reader who said he lives "in the boonies" and cannot attend a live course at a university, so the Cyber Classroom provided an ideal solution to his educational needs.

Professors tell us that their students enjoy using the Cyber Classroom and spend more time on the courses and master more of the material than in textbook-only courses. For a complete list of the available and forthcoming Cyber Classrooms and Complete Training Courses, see the Deitel? Series page at the beginning of this book, the product listing and ordering information at the end of this book or visit www.deitel.com, www.prenhall.com/deitel or www.InformIT.com/deitel.

Deitel e-Learning Initiatives

e-Books and Support for Wireless Devices

Wireless devices will play an enormous role in the future of the Internet. Given recent bandwidth enhancements and the emergence of 2.5 and 3G wireless technologies, it is projected that, within two years, more people will access the Internet through wireless devices than through desktop computers. Deitel & Associates, Inc., is committed to wireless accessibility and has recently published Wireless Internet & Mobile Business How to Program. To fulfill the needs of a wide range of customers, we are developing our content in traditional print formats and in new electronic formats, such as e-books, so that readers can access content virtually anytime, anywhere. Visit www.deitel.com for periodic updates on all Deitel technology initiatives.

e-Matter

Deitel & Associates, Inc. is partnering with Prentice Hall's parent company, Pearson PLC, and its information technology Web site, InformIT.com, to launch the Deitel e-Matter series at www.InformIT.com/deitel in Fall 2002. The Deitel e-Matter series will provide professionals with an additional source of information on specific programming topics at modest prices. e-Matter consists of stand-alone sections taken from published texts, forthcoming texts or pieces written during the Deitel research-and-development process. Developing e-Matter based on pre-publication manuscripts allows us to offer significant amounts of the material well before our books are published.

Course Management Systems: WebCT, Blackboard, CourseCompass, and Premium CourseCompass

We are working with Prentice Hall to integrate our How to Program Series courseware into four Course Management Systems: WebCT, Blackboard, CourseCompass and Premium CourseCompass. These enable instructors to create, manage and use sophisticated Web-based educational programs. Course Management Systems feature course customization (such as posting contact information, policies, syllabi, announcements, assignments, grades, performance evaluations and progress tracking), class and student management tools, a grade book, reporting tools, communication tools (such as chat rooms), a whiteboard, document sharing, bulletin boards and more. Instructors can use these products to communicate with their students, create online quizzes and exams from questions directly linked to the text and efficiently grade and track test results. For more information about these upcoming products, visit www.prenhall.com/cms. For demonstrations of existing WebCT, Blackboard and CourseCompass course materials, visit cms.prenhall.com/webct, cms.prenhall.com/blackboard and cms.prenhall.com/coursecompass, respectively.

Deitel and InformIT Newsletters

Deitel Column in the InformIT Newsletters

Deitel & Associates, Inc., contributes articles to the free InformIT weekly e-mail newsletter, subscribed to by more than 750,000 IT professionals worldwide. For registration information, visit www.InformIT.com and click the MyInformIT tab.

Deitel Buzz Online Newsletter

Our own free newsletter, the Deitel Buzz Online, includes commentary on industry trends and developments, links to articles and resources from our published books and upcoming publications, product-release schedules, challenges, anecdotes and more. For registration information, visit www.deitel.com/newsletter/subscribe.html

The Deitel Developer Series

Deitel & Associates, Inc., is making a major commitment to .NET programming through the launch of our Deitel? Developer Series. C#: A Programmer's Introduction, C# for Experienced Programmers, Visual Basic .NET for Experienced Programmers and Visual C++ .NET for Experienced Programmers are the first .NET books in this new series. These will be followed by several advanced books, beginning with ASP .NET with Visual Basic .NET for Experienced Programmers and ASP .NET with C# for Experienced Programmers.

The Deitel Developer Series is divided into three subseries. The A Technical Introduction subseries provides IT managers and developers with detailed overviews of emerging technologies. The A Programmer's Introduction subseries is designed to teach the fundamentals of new languages and software technologies to developers from the ground up. These books discuss programming fundamentals, followed by brief introductions to more sophisticated topics. Finally, the For Experienced Programmers subseries is designed for seasoned developers seeking to learn new programming languages and technologies without the encumbrance of introductory material. The books in this subseries move quickly to in-depth coverage of the intermediate features of the programming languages and software technologies being covered.

ASP .NET with C# for Experienced Programmers

Our forthcoming publication ASP .NET with C# for Experienced Programmers (available in 2003) is geared toward experienced .NET developers. This new book will cover enterprise-level Web-programming topics, including: Creating multi-tier, database intensive ASP .NET applications using ADO .NET and XML; constructing custom Web controls and developing Web services. This book also will include configuration and security topics. Updates on the status of this publication are posted at www.deitel.com. Before reading this book you should be familiar with C# at the level of either C# How to Program or C# for Experienced Programmers.

Feedback

We would sincerely appreciate your comments, criticisms, corrections and suggestions for improving the book. Please address all correspondence to:

deitel@deitel.com

We will respond promptly.

Well, that's it for now. Welcome to the exciting world of C# programming. We hope you enjoy this introductory look at Microsoft's premier .NET language. Good luck!

Dr. Harvey M. Deitel
Paul J. Deitel
Jeff Listfield
Tem R. Nieto
Cheryl H. Yaeger
Marina Zlatkina

Updates

Submit Errata

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