Conversions between Data Types
Code Blocks, Scopes, and Declaration Spaces
Bitwise Operators (<<
, >>
, |
, &
, ^
, ~
)
Control Flow Statements, Continued
Returns and Parameters on Main()
Basic Error Handling with Exceptions
Declaring and Instantiating a Class
All Classes Derive from System.Object
Verifying the Underlying Type with the is
Operator
Conversion Using the as
Operator
Polymorphism through Interfaces
Converting between the Implementing Class and Its Interfaces
Multiple Interface Inheritance
Extension Methods on Interfaces
Implementing Multiple Inheritance via Interfaces
Interfaces Compared with Classes
Interfaces Compared with Attributes
Guidelines for Exception Handling
Rethrowing a Wrapped Exception
12 Delegates and Lambda Expressions
General-Purpose Delegates: System.Func
and System.Action
Coding the Observer Pattern with Multicast Delegates
14 Collection Interfaces with Standard Query Operators
Anonymous Types and Implicitly Typed Local Variables
What Makes a Class a Collection: IEnumerable<T>
15 LINQ with Query Expressions
Query Expressions Are Just Method Invocations
16 Building Custom Collections
Returning Null
or an Empty Collection
17 Reflection, Attributes, and Dynamic Programming
Programming with Dynamic Objects
The Task-Based Asynchronous Pattern
Executing Loop Iterations in Parallel
Running LINQ Queries in Parallel
20 Platform Interoperability and Unsafe Code
Executing Unsafe Code via a Delegate
Using the Windows Runtime Libraries from C#
21 The Common Language Infrastructure
Defining the Common Language Infrastructure
C# Compilation to Machine Code
Assemblies, Manifests, and Modules
A Downloading and Installing the C# Compiler and CLI Platform