FIGURE 2.1: Value Types Contain the Data Directly
FIGURE 2.2: Reference Types Point to the Heap
FIGURE 3.1: Corresponding Placeholder Values
FIGURE 3.2: Calculating the Value of an Unsigned Byte
FIGURE 3.3: Calculating the Value of a Signed Byte
FIGURE 3.4: The Numbers 12 and 7 Represented in Binary
FIGURE 3.5: Collapsed Region in Microsoft Visual Studio .NET
FIGURE 4.1: Exception-Handling Program Flow
FIGURE 6.1: Refactoring into a Base Class
FIGURE 6.2: Simulating Multiple Inheritance Using Aggregation
FIGURE 7.1: Working around Single Inheritances with Aggregation and Interfaces
FIGURE 8.1: Value Types Contain the Data Directly
FIGURE 8.2: Reference Types Point to the Heap
FIGURE 9.2: XML Comments As Tips in Visual Studio IDE
FIGURE 12.1: Delegate Types Object Model
FIGURE 12.2: Anonymous Function Terminology
FIGURE 12.3: The Lambda Expression Tree Type
FIGURE 12.4: Unary and Binary Expression Tree Types
FIGURE 13.1: Delegate Invocation Sequence Diagram
FIGURE 13.2: Multicast Delegates Chained Together
FIGURE 13.3: Delegate Invocation with Exception Sequence Diagram
FIGURE 14.1: A Class Diagram of IEnumerator<T>
and IEnumerator
Interfaces
FIGURE 14.2: Sequence of Operations Invoking Lambda Expressions
FIGURE 14.3: Venn Diagram of Inventor and Patent Collections
FIGURE 16.1: Generic Collection Interface Hierarchy
FIGURE 16.2: List<>
Class Diagrams
FIGURE 16.3: Dictionary
Class Diagrams
FIGURE 16.4: SortedList<>
and SortedDictionary<>
Class Diagrams
FIGURE 16.5: Stack<T>
Class Diagram
FIGURE 16.6: Queue<T>
Class Diagram
FIGURE 16.7: LinkedList<T>
and LinkedListNode<T>
Class Diagrams
FIGURE 16.8: Sequence Diagram with yield return
FIGURE 17.1: MemberInfo
Derived Classes
FIGURE 17.2: BinaryFormatter
Does Not Encrypt Data
FIGURE 18.1: Clock Speeds over Time
FIGURE 18.2: CancellationTokenSource
and CancellationToken
Class Diagrams
FIGURE 20.1: Pointers Contain the Address of the Data
FIGURE 21.1: Compiling C# to Machine Code
FIGURE 21.2: Assemblies with the Modules and Files They Reference