C# Primer Plus
Copyright
About the Author
Acknowledgments
Tell us What you Think!
Introduction
Philosophy, Goals, and Audience
How This Book Is Organized
Conventions
C# On The Internet
Contacting the Author
Chapter 1. Computers and Computer Programming: Basic Concepts
C# Is an Object-Oriented Programming Language
Hardware
Software
Summary
Review Questions
Chapter 2. Your First C# Program
Software Development
The Software Development Process
Algorithms and Pseudocode
The Three Different Types of Errors
Object-Oriented Programming: A First Encounter
Software Reuse
The Assembly, the Basic Unit of Code Reuse in .NET
The .NET Framework Class Library
C#: History and Design Goals
C#'s Background
C#'s Design Goals
What Kind of Programs Can I Write with C#?
The Mechanics of Creating a C# Program
Before Getting Started
Choosing a Text Editor
The Seven Steps to Writing a Simple C# Program
A Brief Source Code Analysis
Note on Syntax Errors and Compilers
Summary
Review Questions
Programming Exercises
Chapter 3. A Guided Tour Through C#: Part I
Introduction
Abstraction and Encapsulation
An Interactive Hello World! Program
Summary
Review Questions
Programming Exercises
Chapter 4. A Guided Tour Through C#: Part II
Introduction
Essential Elements of SimpleCalculator.cs
Simplifying Your Code with Methods
Methods As Building Blocks: Encapsulating Your Helper Methods with the private keyword.
Summary
Review Questions
Programming Exercises
Chapter 5. Your First Object-Oriented C# Program
Introduction
Lexical Structure
Some Thoughts on Elevator Simulations
Concepts, Goals and Solutions in an Elevator Simulation Program: Collecting Valuable Statistics for Evaluating an Elevator System
Object-Oriented Programming: A Practical Example
Summary
Review Questions
Programming Exercises
Chapter 6. Types Part I: The Simple Types
Introduction
Types in C#: An Overview
Simple Types
The Blipos Clock
Summary
Review Questions
Programming Exercises
Chapter 7. Types Part II: Operators, Enumerators, and Strings
Introduction
Arithmetic Operators and Numerical Expressions
Associativity
Parentheses and Precedence
The Modulus Operator (%)
Unary Operators
Determining the Type of an Expression
Combining Different Types in One Expression
Accessing the Metadata of a Component: A Brief Introduction
Enumerated Constants
Enumerator Operators
Conversions
The Methods of System.Enum
Characters and Text
The char Type
The string Type
Summary
Review Questions
Programming Exercises
Chapter 8. Flow of Control Part I: Branching Statements and Related Concepts
Introduction to Flow of Control
Branching with the if Statement
Comparison Operators and Boolean Expressions
Nested if Statements
Multibranch if-else Statements
Logical Operators
The Scope of Variables
The goto Statement
The switch Statement
The Conditional Operator
Summary
Review Questions
Programming Exercises
Chapter 9. Flow of Control Part II: Iteration Statements
Traversing, Analyzing, and Generating Sequences of Data
The while Loop Statement
The do-while Loop Statement
The for Loop Statement
The Jump Statements break and continue
Structured Programming and Structured Constructs
Combination Assignment Operators
Nested Iteration Statements
Programming Exercises
Summary
Review Questions
Programming Exercises
Chapter 10. Arrays Part I: Array Essentials
Declaring and Defining an Array
Accessing Individual Array Elements
Array Indexes Out of Range
Adjusting for the Zero-Based Array Index
Initializing Arrays
Traversing an Entire Array with the foreach Statement
System.Array Is a Reference Type
Arrays and Equality
Arrays and Methods
A Method to Perform Array Value Equality Comparisons
Command Line Arguments
Using Arrays As Return Values from Methods
Array Elements Referencing Objects
Arrays As Instance Variables in Classes
Summary
Review Questions
Programming Exercises
Chapter 11. Arrays Part II: Multidimensional Arrays-searching and Sorting Arrays
Multidimensional Arrays
Arrays of More Than Two Dimensions
The Built-In Methods of System.Array
Special Array Techniques
Searching
Summary
Review Questions
Programming Exercises
Chapter 12. Class Anatomy Part I: static Class Members and Method Adventures
The Anatomy of a Class: Overview
Data Members
Function Members
Summary
Review Questions
Programming Exercises
Chapter 13. Class Anatomy Part II: Object Creation and Garbage Collection
Instance Constructors
static Constructors
The readonly Member
Garbage Collection: Automatic Dynamic Memory Management
Summary
Review Questions
Programming Exercises
Chapter 14. Class Anatomy Part III: Writing Intuitive Code
Properties
Indexers: Using Objects Like Arrays
Operator Overloading
User-Defined Implicit and Explicit Conversions
Nested Types
Summary
Review Questions
Programming Exercises
Chapter 15. Namespaces, Compilation Units, and Assemblies
Defining Your Own Namespaces
The Global Nameless Namespace
Namespaces and Compilation Units
Nested Namespaces
Namespace Syntax
More About the using Directive
Compile Units, Namespaces, and Assemblies
Exploring Assemblies with the Ildasm Utility
Summary
Review Questions
Programming Exercises
Chapter 16. Inheritance Part I: Basic Concepts
The Need for Inheritance
Inheritance Fundamentals
Access Modifiers and Inheritance
Derived Class Constructors
Indexers Are Also Inherited and Can Be Overridden
Calling an Overridden Function in the Base Class
Reusing the .NET Framework Class Library with Inheritance
Multiple Levels of Derived Classes
Method Overriding and Overloading Are Different Mechanisms
Summary
Review Questions
Programming Exercises
Chapter 17. Inheritance Part II: ABSTRACT Functions, Polymorphism, and Interfaces
abstract Methods, Properties, Indexers, and Classes
Polymorphism
Losing and Regaining Type Information
System.Object: The Ultimate Base Class
Method hiding
Versioning with the new and override Keywords
Multiple inheritance
Interfaces
Summary
Review Questions
Programming Exercises
Chapter 18. Structs
Defining a Struct
Boxing and Unboxing
Creating Structs with and without new
Value Types and Reference Types
Summary
Review Questions
Programming Exercises
Chapter 19. Exception Handling
Exception Handling: A Brief Overview
Life without try-catch-finally
The try and catch blocks
Catching the Exception Object Farther up the Function Call Chain
Multiple catch Blocks
The finally Block
Nested try Blocks
throw: Explicitly Throwing Exceptions
Writing Custom Exceptions
Summary
Review Questions
Programming Exercises
Chapter 20. Delegates and Events
Delegates
Events
Summary
Review Questions
Programming Exercises
Chapter 21. Preprocessing, XML Documentation, and Attributes
Preprocessor Directives
XML Documentation
Attributes
Summary
Review Questions
Programming Exercises
Chapter 22. File I/O Basics
The Need for Files
Stream Basics and File I/O
File I/O Classes: An Overview
The FileInfo Class
Text File Input and Output with StreamReader and StreamWriter
Binary Input and Output with the FileStream Class
Summary
Review Questions
Programming Exercises
Chapter 23. Recursion Fundamentals
Pending Method Instances of Different Methods
Pending Method Instances of the Same Method
Putting Recursion to Work: Calculating n Factorial
Recursion and Iteration
Binary Search Using Recursion
Summary
Review Questions
Programming Exercises
Appendix A. Answers to Quizzes and Exercises
Answers to Chapter 1 Review Questions
Answers to Chapter 2 Review Questions
Answers to Chapter 3 Review Questions
Answers to Chapter 4 Review Questions
Answers to Chapter 5 Review Questions
Answers to Chapter 6 Review Questions
Answers to Chapter 7 Review Questions
Answers to Chapter 8 Review Questions
Answers to Chapter 9 Review Questions
Answers to Chapter 10 Review Questions
Answers to Chapter 11 Review Questions
Answers to Chapter 12 Review Questions
Answers to Chapter 13 Review Questions
Answers to Chapter 14 Review Questions
Answers to Chapter 15 Review Questions
Answers to Chapter 16 Review Questions
Answers to Chapter 17 Review Questions
Answers to Chapter 18 Review Questions
Answers to Chapter 19 Review Questions
Answers to Chapter 20 Review Questions
Answers to Chapter 21 Review Questions
Answers to Chapter 22 Review Questions
Answers to Chapter 23 Review Questions