C# Fundamentals
o C#’s Family Tree
o The Evolution of C#
o How C# Relates to the .NET Framework
o Object-Oriented Programming
o Creating, Compiling, and Running Your First C# Program
o The First Example Program Line by Line
o Handling Syntax Errors
o A Small Variation
o Using a Variable
o The double Data Type
o Two Control Statements
o Using Blocks of Code
o Semicolons and Positioning The C# Keywords
o Identifiers
o The C# Class Library
Introducing Data Types and Operators
o Why Data Types Are Important
o C#’s Value Types
o Floating-Point Types
o The decimal Type
o Characters
o The bool Type
o Some Output Options
o Literals A Closer Look at Variables
o The Scope and Lifetime of Variables
o Operators
o Arithmetic Operators
o Relational and Logical Operators
o The Assignment Operator
o Casting Incompatible Types
o Operator Precedence
o Type Conversion in Expressions
Program Control Statements
o Inputting Characters from the Keyboard
o The if Statement
o The switch Statement
o The for Loop
o The while Loop
o The do-while Loop
o Use break to Exit a Loop
o Use continue
o The goto
o Nested Loops
Introducing Classes, Objects, and Methods
o Class Fundamentals
o How Objects Are Created
o How Objects Are Created
o Reference Variables and Assignment
o Methods
o Constructors
o The new Operator Revisited
o Garbage Collection and Destructors
o The this Keyword
More Data Types and Operators
o Arrays
o Multidimensional Arrays
o Jagged Arrays
o Assign Array References
o Use the Length Property with Arrays
o Create an Implicitly Typed Array
o The foreach Loop
o Strings
o The Bitwise Operators
o The ? Operator
A Closer Look at Methods and Classes
o Controlling Access to Class Members
o Pass an Object Reference to a Method
o Using ref and out Parameters
o Using a Variable Number of Arguments
o Returning Objects
o Method Overloading
o Overloading Constructors
o The Main( ) Method
o Recursion
o Understanding static
o Static Constructors and Classes
Operator Overloading, Indexers, and Properties
o Operator Overloading
o Indexers
o Properties
o Use an Access Modifier with an Accessor
Inheritance
o Inheritance Basics
o Member Access and Inheritance
o Using Protected Access
o Constructors and Inheritance
o Inheritance and Name Hiding
o Creating a Multilevel Hierarchy
o When Are Constructors Called?
o Base Class References and Derived Objects
o Virtual Methods and Overriding
o Using Abstract Classes
o Using sealed to Prevent Inheritance
o The object Class
Interfaces, Structures, and Enumerations
o Interfaces
o Using Interface References
o Interface Properties
o Interface Indexers
o Interfaces Can Be Inherited
o Interfaces Can Be Inherited
o Explicit Implementations
o Structures
o Enumerations
Exception Handling
o The System.Exception Class
o Exception-Handling Fundamentals
o The Consequences of an Uncaught Exception
o Exceptions Let You Handle Errors Gracefully
o Using Multiple catch Clauses
o Catching All Exceptions
o Try Blocks Can Be Nested
o Throwing an Exception
o Using finally
o A Closer Look at Exception
o Deriving Exception Classes
o Catching Derived Class Exceptions
o Using checked and unchecked
o Using I/O
o C#’s I/O Is Built Upon Streams
o The Stream Classes
o Console I/O
o FileStream and Byte-Oriented File I/O
o Character-Based File I/O
o Redirecting the Standard Streams
o Reading and Writing Binary Data
o Random Access Files
o Converting Numeric Strings to Their Internal Representation
Delegates, Events, and Namespaces
o Delegates
o Anonymous Methods
o Events
o Namespaces
Generics
o What Are Generics?
o Generics Fundamentals
o Generic Class with Two Type Parameters
o Constrained Types
o Create a Default Value of a Type Parameter
o Generic Structures
o Generic Methods
o Generic Delegates
o Generic Interfaces
Introducing LINQ
o What Is LINQ?
o LINQ Fundamentals
o Filter Values with where
o Sort Results with orderby
o A Closer Look at select
o Group Results with group
o Use into to Create a Continuation
o Use let to Create a Variable in a Query
o Join Two Sequences with join
o Anonymous Types and Object Initializers
o Create a Group Join
o The Query Methods and Lambda Expressions
o A Closer Look at Extension Methods
o A Closer Look at Lambda Expressions
The Preprocessor, RTTI, Nullable Types, and Other Advanced Topics
o The Preprocessor
o Runtime Type Identification
o Nullable Types
o Unsafe Code
o Attributes
o Conversion Operators
o A Brief Introduction to Collections
o Other Keywords
o What Next?