Figure 1-1: Overview of the Common Language Runtime (CLR).
Chapter 2: Common Type System
Figure 2-1: CTS type hierarchy.
Figure 2-2: Object and value memory layout.
Chapter 3: Inside the CLR
Figure 3-1: Example of stack-based addition (3 + 5).
Figure 3-2: IL stream representation of add programs.
Figure 3-3: Heap (a) before and (b) after allocation of a new 16-byte object.
Figure 3-4: Allocation, collection, and compaction of GC generations.
Figure 3-5: An example root-based reachability graph.
Figure 3-6: JIT compilation overview.
Chapter 4: Assemblies, Loading, and Deployment
Figure 4-1: An assembly with three modules—two PE files and one opaque resource file.
Figure 4-2: Physical structure of an assembly PE file.
Figure 4-3: An overview of the early-bound assembly load process.
Chapter 5: Fundamental Types
Figure 5-1: Numeric type hierarchy.
Chapter 6: Arrays and Collections
Figure 6-1: A 5×8 rectangular array.
Figure 6-2: Illustration of a jagged array in memory.
Figure 6-3: Generic collections base interface hierarchy.
Figure 6-4: A stack. (a) Initial elements inserted—10, 15, 3, and 25, (b) pushing 99 onto the stack, (c) after the push, and (d) popping 99 off the top of the stack.
Figure 6-5: A queue. (a) Initial elements inserted—10, 15, 3, and 25, (b) enqueueing 99 onto the front of the queue, (c) after the enqueue, and (d) dequeueing 10 off the back of the queue.
Figure 6-6: Illustration of a linked list with elements inserted—10, 15, 3, 25, and 99.
Chapter 7: I/O, Files, and Networking
Figure 7-1: The Open Systems Interconnection (OSI) stack.
Chapter 8: Internationalization
Figure 8-1: Tree of sample invariant, neutral, and specific cultures.
Figure 8-2: Tree of sample neutral cultures.
Figure 8-3: Example satellite assembly structure.
Chapter 9: Security
Figure 9-1: A high-level overview of the CAS infrastructure.
Figure 9-2: CLR call-stack with assert and deny frames.
Figure 9-3: System.Security.AccessControl class hierarchy for ACL types.
Chapter 10: Threads, AppDomains, and Processes
Figure 10-1: Isolation between processes, AppDomains, and threads.
Figure 10-2: Thread state transitions.
Figure 10-3: Race condition arising from unsynchronized access to shared data.