Copyright
Preface
About This Book
How the Book Is Organized
Who This Book Is For
C# Versus Visual Basic .NET
C# Versus Java
C# Versus C++
Conventions Used in This Book
Support
We\'d Like to Hear from You
Acknowledgments

Part I: The C# Language
Chapter 1. C# and the .NET Framework
Section 1.1. The .NET Platform
Section 1.2. The .NET Framework
Section 1.3. Compilation and the MSIL
Section 1.4. The C# Language

Chapter 2. Getting Started: "Hello World"
Section 2.1. Classes, Objects, and Types
Section 2.2. Developing "Hello World"
Section 2.3. Using the Visual Studio .NET Debugger

Chapter 3. C# Language Fundamentals
Section 3.1. Types
Section 3.2. Variables and Constants
Section 3.3. Expressions
Section 3.4. Whitespace
Section 3.5. Statements
Section 3.6. Operators
Section 3.7. Namespaces
Section 3.8. Preprocessor Directives

Chapter 4. Classes and Objects
Section 4.1. Defining Classes
Section 4.2. Creating Objects
Section 4.3. Using Static Members
Section 4.4. Destroying Objects
Section 4.5. Passing Parameters
Section 4.6. Overloading Methods and Constructors
Section 4.7. Encapsulating Data with Properties
Section 4.8. Readonly Fields

Chapter 5. Inheritance and Polymorphism
Section 5.1. Specialization and Generalization
Section 5.2. Inheritance
Section 5.3. Polymorphism
Section 5.4. Abstract Classes
Section 5.5. The Root of all Classes: Object
Section 5.6. Boxing and Unboxing Types
Section 5.7. Nesting Classes

Chapter 6. Operator Overloading
Section 6.1. Using the operator Keyword
Section 6.2. Supporting Other .NET Languages
Section 6.3. Creating Useful Operators
Section 6.4. Logical Pairs
Section 6.5. The Equals Operator
Section 6.6. Conversion Operators

Chapter 7. Structs
Section 7.1. Defining Structs
Section 7.2. Creating Structs

Chapter 8. Interfaces
Section 8.1. Implementing an Interface
Section 8.2. Accessing Interface Methods
Section 8.3. Overriding Interface Implementations
Section 8.4. Explicit Interface Implementation

Chapter 9. Arrays, Indexers, and Collections
Section 9.1. Arrays
Section 9.2. The foreach Statement
Section 9.3. Indexers
Section 9.4. Collection Interfaces
Section 9.5. Array Lists
Section 9.6. Queues
Section 9.7. Stacks
Section 9.8. Dictionaries

Chapter 10. Strings and Regular Expressions
Section 10.1. Strings
Section 10.2. Regular Expressions

Chapter 11. Handling Exceptions
Section 11.1. Throwing and Catching Exceptions
Section 11.2. Exception Objects
Section 11.3. Custom Exceptions
Section 11.4. Rethrowing Exceptions

Chapter 12. Delegates and Events
Section 12.1. Delegates
Section 12.2. Events


Part II: Programming with C#
Chapter 13. Building Windows Applications
Section 13.1. Creating a Simple Windows Form
Section 13.2. Creating a Windows Form Application
Section 13.3. XML Documentation Comments
Section 13.4. Deploying an Application

Chapter 14. Accessing Data with ADO.NET
Section 14.1. Relational Databases and SQL
Section 14.2. The ADO.NET Object Model
Section 14.3. Getting Started with ADO.NET
Section 14.4. Using OLE DB Managed Providers
Section 14.5. Working with Data-Bound Controls
Section 14.6. Changing Database Records
Section 14.7. ADO.NET and XML

Chapter 15. Programming Web Applicationswith Web Forms
Section 15.1. Understanding Web Forms
Section 15.2. Creating a Web Form
Section 15.3. Adding Controls
Section 15.4. Data Binding
Section 15.5. Responding to Postback Events
Section 15.6. ASP.NET and C#

Chapter 16. Programming Web Services
Section 16.1. SOAP, WSDL, and Discovery
Section 16.2. Building a Web Service
Section 16.3. Creating the Proxy


Part III: The CLR and the .NET Framework
Chapter 17. Assemblies and Versioning
Section 17.1. PE Files
Section 17.2. Metadata
Section 17.3. Security Boundary
Section 17.4. Versioning
Section 17.5. Manifests
Section 17.6. Multi-Module Assemblies
Section 17.7. Private Assemblies
Section 17.8. Shared Assemblies

Chapter 18. Attributes and Reflection
Section 18.1. Attributes
Section 18.2. Intrinsic Attributes
Section 18.3. Custom Attributes
Section 18.4. Reflection
Section 18.5. Reflection Emit

Chapter 19. Marshaling and Remoting
Section 19.1. Application Domains
Section 19.2. Context
Section 19.3. Remoting

Chapter 20. Threads and Synchronization
Section 20.1. Threads
Section 20.2. Synchronization
Section 20.3. Race Conditions and Deadlocks

Chapter 21. Streams
Section 21.1. Files and Directories
Section 21.2. Reading and Writing Data
Section 21.3. Asynchronous I/O
Section 21.4. Network I/O
Section 21.5. Web Streams
Section 21.6. Serialization
Section 21.7. Isolated Storage

Chapter 22. Programming .NET and COM
Section 22.1. Importing ActiveX Controls
Section 22.2. Importing COM Components
Section 22.3. Exporting .NET Components
Section 22.4. P/Invoke
Section 22.5. Pointers


Glossary
Colophon
Index