Cover image for C# in a Nutshell

Book description

C# in a Nutshell provides everything programmers need to know about the C# language in one concise and accessible volume. Designed as a primary reference for daily use, it also includes all the essential background information to become productive quickly. Not a "how-to" book or a rehash of Microsoft's documentation, this book goes to the source of the C# language and the APIs of the .NET Framework to present the content in a way that professional programmers will value above all other books. Brief introductions to the language and .NET runtime provide the needed preparation for programming with the C# language, whose keywords and syntax are then detailed in subsequent chapters. Next, C# in a Nutshell presents key namespaces and types of the .NET Framework base class library which provides much of the functionality and power of the language. Using C# examples, the .NET Framework covers each core area, including:

  • Strings

  • Collections

  • XML

  • Networking

  • Input/Output

  • Serialization

  • Assemblies

  • Reflection

  • Custom Attributes

  • Memory Management

  • Threading

  • Integrating with Native DLLs

  • Integrating with COM Components

  • Diagnostics

Determined to provide even more value, C# in a Nutshell moves into a comprehensive language reference, plus syntax, XML documentation tags, naming and coding conventions, and the various C# development tools--the kind of reference material programmers will use every day. Next, an extensive and quick reference to the API is presented, featuring the System namespace. Particularly useful are the many figures and tables that present the main features of the namespace. For those looking create alternatives to Microsoft's implementation of the C# Programming Language and the Common Language Infrastructure as submitted to ECMA (an international standards organization), each element included in the ECMA submission is clearly labeled. Finally, the entire reference is based on Version 1 of the .NET Framework and generated by tools written in the C# language itself. Every once in a while, a book becomes the de-facto standard for a technology, operating system, or programming language--which is exactly what C# in a Nutshell aims to do in a single straightforward and easy to use volume.

Table of Contents

  1. C# in a Nutshell
    1. Preface
      1. Audience
      2. Contents of This Book
      3. Assumptions This Book Makes
      4. Conventions Used in This Book
      5. Related Books
      6. C# Resources Online
      7. How to Contact Us
      8. How the Quick Reference Is Generated
      9. Acknowledgments
        1. Peter Drayton
        2. Ben Albahari
        3. Ted Neward
    2. I. Programming with C#
      1. 1. Introducing C# and the .NET Framework
        1. The C# Language
          1. Enabling Component-Based Development
          2. A Modern Object-Oriented Language
          3. Building Robust and Durable Software
          4. A Pragmatic World View
        2. The .NET Framework
          1. The Common Language Runtime
          2. Compilation and Execution Model
          3. The Common Type System
          4. The Common Language Specification
          5. The Framework Class Library
        3. ECMA Standardization
      2. 2. C# Language Basics
        1. A First C# Program
        2. Identifiers and Keywords
        3. Type Basics
          1. The String Class
          2. The int Struct
          3. A Custom Type
          4. Type Instances
          5. Conversions
        4. Value Types and Reference Types
          1. Value Types
          2. Reference Types
          3. The Heap and the Stack
            1. Value types and reference types side-by-side
          4. Type System Unification
            1. Simple types are value types
            2. Value types expand the set of simple types
            3. Boxing and unboxing value types
        5. Predefined Types
          1. Integral Types
            1. Integral conversions
          2. Floating-Point Types
            1. Floating-point conversions
          3. Decimal Type
            1. Decimal conversions
          4. Char Type
            1. Char conversions
          5. Bool Type
            1. Bool conversions
          6. Object Type
          7. String Type
        6. Arrays
          1. Multidimensional Arrays
          2. Local Field Array Declarations
          3. Array Length and Rank
          4. Bounds Checking
          5. Array Conversions
        7. Variables and Parameters
          1. Definite Assignment
          2. Default Values
          3. Parameters
            1. Passing arguments by value
            2. Ref modifier
            3. The out modifier
            4. The params modifier
        8. Expressions and Operators
          1. Operator Precedence
          2. Arithmetic Overflow Check Operators
        9. Statements
          1. Expression Statements
          2. Declaration Statements
          3. Selection Statements
            1. The if-else statement
            2. switch statement
          4. Loop Statements
            1. while loops
            2. do-while loops
            3. for loops
            4. foreach loops
          5. Jump Statements
            1. The break statement
            2. The continue statement
            3. The goto statement
            4. The return statement
            5. The throw statement
            6. The lock statement
            7. The using statement
        10. Namespaces
          1. Files
          2. Namespaces
            1. Nesting namespaces
            2. Using a type with its fully qualified name
            3. The using keyword
            4. Aliasing types and namespaces
            5. Global namespace
      3. 3. Creating Types in C#
        1. Classes
          1. The this Keyword
          2. Fields
            1. Nonstatic fields
            2. The readonly modifier
          3. Constants
          4. Properties
          5. Indexers
          6. Methods
            1. Signatures
            2. Overloading methods
          7. Instance Constructors
            1. Field initialization order
            2. Constructor access modifiers
          8. Static Constructors
            1. Static field initialization order
            2. Nondeterminism of static constructors
          9. Destructors and Finalizers
          10. Nested Types
        2. Inheritance
          1. Class Conversions
            1. The as operator
            2. The is operator
          2. Polymorphism
          3. Virtual Function Members
          4. Abstract Classes and Abstract Members
          5. Sealed Classes
          6. Hiding Inherited Members
          7. Advanced Features of Virtual Function Members
            1. Version virtual function members
            2. Sealed virtual function members
            3. Overriding a virtual function member
          8. The base Keyword
          9. Constructor and Field Initializationin the Inheritance Chain
        3. Access Modifiers
          1. Restrictions on Access Modifiers
        4. Structs
        5. Interfaces
          1. Defining an Interface
          2. Implementing an Interface
          3. Using an Interface
          4. Extending an Interface
          5. Explicit Interface Implementation
          6. Reimplementing an Interface
          7. Interface Conversions
        6. Enums
          1. Enum Operators
          2. Enum Conversions
      4. 4. Advanced C# Features
        1. Delegates
          1. Multicast Delegates
        2. Delegates Versus Function Pointers
        3. Delegates Versus Interfaces
        4. Events
          1. Defining a Delegate for an Event
          2. Storing Data for an Event with EventArgs
          3. Declaring and Firing and Event
          4. Acting on an Event with an Event Handler
          5. Event Accessors
        5. Operator Overloading
          1. Implementing Value Equality
          2. Logically Paired Operators
          3. Custom Implicit and Explicit Conversions
          4. Three-State Logic Operators
          5. Indirectly Overloadable Operators
        6. Try Statements and Exceptions
          1. Exceptions
          2. The catch Clause
            1. Omitting the exception variable
            2. Omitting the catch expression
            3. Specifying multiple catch clauses
          3. The finally Block
          4. Key Properties of System.Exception
        7. Attributes
          1. Attribute Classes
          2. Named and Positional Parameters
          3. Attribute Targets
          4. Specifying Multiple Attributes
        8. Unsafe Code and Pointers
          1. Pointer Basics
          2. Unsafe Code
          3. The fixed Statement
          4. The Pointer-to-Member Operator
          5. The stackalloc Keyword
          6. Void*
          7. Pointers to Unmanaged Code
        9. Preprocessor Directives
        10. XML Documentation
          1. C/C++-Style Comments
          2. Documentation Comments
          3. XML Documentation Files
          4. Predefined XML Tags
          5. User-Defined Tags
          6. Generated Documentation
          7. Type or Member Cross-References
    3. II. Programming with the .NET Framework
      1. 5. Framework Class Library Overview
        1. Core Types
        2. Text
        3. Collections
        4. Streams and I/O
        5. Networking
        6. Threading
        7. Security
        8. Reflection and Metadata
        9. Assemblies
        10. Serialization
        11. Remoting
        12. Web Services
        13. Data Access
        14. XML
        15. Graphics
        16. Rich Client Applications
        17. Web-Based Applications
        18. Globalization
        19. Configuration
        20. Advanced Component Services
        21. Diagnostics and Debugging
        22. Interoperating with Unmanaged Code
        23. Compiler and Tool Support
        24. Runtime Facilities
        25. Native OS Facilities
        26. Undocumented Types
      2. 6. String Handling
        1. String Class
          1. Comparing Strings
          2. Immutability of Strings
          3. String Interning
          4. Formatting Strings
          5. Indexing Strings
          6. Encoding Strings
        2. StringBuilder Class
        3. Regular Expression Support
          1. The Regex Class
          2. The Match and MatchCollection Classes
          3. The Group Class
          4. The Capture and Capture Collection Classes
        4. Regular Expression Basics
        5. Procedural- and Expression-Based Patterns
          1. Procedural-Based Patterns
          2. Expression-Based Patterns
        6. Cookbook Regular Expressions
      3. 7. Collections
        1. Iterating Over Collections
          1. IEnumerable and IEnumerator Interfaces
          2. Implementing IEnumerable and IEnumerator
          3. Optimizing foreach
          4. IDictionaryEnumerator interface
        2. Standard Collection Interfaces
          1. ICollection Interface
          2. IList Interface
          3. IDictionary Interface
        3. Predefined Collection Classes
          1. The Array Class
          2. The ArrayList Class
          3. The Hashtable Class
          4. The Queue Class
          5. The Stack Class
          6. The BitArray Class
          7. The SortedList Class
          8. The StringCollection Class
          9. The StringDictionary Class
        4. Ordering Instances
          1. The IComparable Interface
          2. The IComparer Interface
        5. Generating Hash Code
          1. The Object.GetHashCode Method
      4. 8. XML I/O
        1. Accessing XML Documents
          1. XmlReader
          2. XmlWriter
        2. Parsing an XML Stream
        3. Selecting Nodes Using XPath
        4. Transforming a Document Using XSLT
      5. 9. Networking
        1. Network Programming Models
        2. Generic Request/Response Architecture
        3. HTTP-Specific Support
        4. WebClient
        5. Adding New Protocol Handlers
        6. Using TCP, UDP, and Sockets
        7. Using DNS
      6. 10. Streams and I/O
        1. Streams and Backing Stores
          1. The Abstract Stream Class
          2. Concrete Stream-Derived Classes
        2. Encapsulating Raw Streams
          1. The BinaryReader and BinaryWriter Classes
          2. The Abstract TextReader and TextWriter Classes
          3. The StreamReader and StreamWriter Classes
          4. The StringReader and StringWriter Classes
        3. Directories and Files
          1. Reading and Writing Files
          2. Examining Directories
          3. Catching Filesystem Events
          4. Asynchronous I/O
        4. Isolated Storage
          1. Reading and Writing Isolated Storage
          2. Enumerating the Contents of Isolated Storage
      7. 11. Serialization
        1. What Is Serialization?
        2. Serialization Support in the Framework
        3. Explicit Serialization
        4. Implicit Serialization
        5. [Serializable]
        6. [NonSerialized]
        7. IDeserializationCallback
        8. ISerializable
        9. [Serializable] and ISerializable
      8. 12. Assemblies
        1. Elements of an Assembly
        2. Assemblies and Modules
        3. Scoping Types and Type References
        4. Naming and Signing Assemblies
        5. Resolving and Loading Assemblies
        6. Deployment
        7. Security Permissions
      9. 13. Reflection
        1. Type Hierarchy
        2. Types, Members, and Nested Types
          1. Assemblies and Modules
          2. AppDomains
        3. Retrieving the Type for an Instance
        4. Retrieving a Type Directly
        5. Reflecting Over a Type Hierarchy
        6. Late Binding
          1. Activation
        7. Advanced Uses of Reflection
        8. Creating New Types at Runtime
      10. 14. Custom Attributes
        1. Language Support
        2. Compiler Support
        3. Runtime Support
        4. Predefined Attributes
          1. The AttributeUsage Attribute
          2. The Conditional Attribute
          3. The Obsolete Attribute
          4. The CLSCompliant Attribute
          5. The Serializable attribute
          6. The NonSerialized attribute
        5. Defining a New Custom Attribute
        6. Retrieving a Custom Attribute at Runtime
      11. 15. Memory Management
        1. The Garbage Collector
        2. Optimization Techniques
        3. Finalizers
        4. Dispose and Close Methods
      12. 16. Threading
        1. Thread Synchronization
          1. The lock Statement
          2. Pulse and Wait Operations
          3. Deadlocks
          4. Atomic operations
        2. Common Thread Types
          1. The Monitor Class
          2. The Enter and Exit Methods
          3. The TryEnter Methods
          4. The Wait Methods
          5. The Pulse and PulseAll Methods
        3. Asynchronous Delegates
      13. 17. Integrating with Native DLLs
        1. Calling Into DLLs
        2. Marshaling Common Types
        3. Marshaling Classes and Structs
        4. In and Out Marshaling
        5. Callbacks from Unmanaged Code
        6. Simulating a C Union
        7. Mapping a Struct to a Binary Format
        8. Predefined Interop Support Attributes
          1. The DllImport Attribute
          2. The StructLayout Attribute
          3. The FieldOffset Attribute
          4. The MarshalAs Attribute
          5. The In Attribute
          6. The Out Attribute
      14. 18. Integrating with COM Components
        1. Binding COM and C# Objects
        2. Exposing COM Objects to C#
        3. Exposing C# Objects to COM
        4. COM Mapping in C#
        5. Common COM Interop Support Attributes
        6. COM+ Support
          1. What Is COM+?
          2. Using COM+ Services with CLR Classes
      15. 19. Diagnostics
        1. Logging and Assertion Facilities
        2. Conditional Compilation
        3. Debugger Integration
        4. Processes, Threads, and Stacks
          1. Launching a New Process
          2. Examining running processes
          3. Examining Threads in a Process
          4. Examining Stack Frames for a Thread
        5. Event Logs
          1. Reading the Event Log
          2. Writing to the Event Log
          3. Monitoring the Event Log
        6. Performance Counters
          1. Enumerating the Available Counters
          2. Reading Performance Counter Data
          3. Adding a New Performance Counter
    4. III. Language and Tools Reference
      1. 20. C# Language Reference
      2. 21. XML Documentation Tag Reference
      3. 22. C# Naming and Coding Conventions
        1. Case
        2. Mechanics
        3. Word Choice
        4. Namespaces
      4. 23. C# Development Tools
        1. ADepends.exe
        2. Al.exe
        3. Cordbg.exe
        4. Csc.exe
        5. DbgCLR.exe
        6. GacUtil.exe
        7. ILasm.exe
        8. ILDasm.exe
        9. InstallUtil.exe
        10. Ngen.exe
        11. Nmake.exe
        12. PEVerify.exe
        13. RegAsm.exe
        14. RegSvcs.exe
        15. Sn.exe
        16. SoapSuds.exe
        17. TlbExp.exe
        18. TlbImp.exe
        19. Wsdl.exe
        20. WinCV.exe
        21. Xsd.exe
    5. IV. API Quick Reference
      1. 24. How to Use This Quick Reference
        1. Finding a Quick-Reference Entry
        2. Reading a Quick-Reference Entry
          1. Type Name, Namespace, Assembly, Type Category, and Flags
          2. Description
          3. Synopsis
            1. Member availability and flags
            2. Functional grouping of members
          4. Class Hierarchy
          5. Cross References
          6. A Note About Type Names
      2. 25. Microsoft.Win32
        1. PowerModeChangedEventArgs
        2. PowerModeChangedEventHandler
        3. PowerModes
        4. Registry
        5. RegistryHive
        6. RegistryKey
        7. SessionEndedEventArgs
        8. SessionEndedEventHandler
        9. SessionEndingEventArgs
        10. SessionEndingEventHandler
        11. SessionEndReasons
        12. SystemEvents
        13. TimerElapsedEventArgs
        14. TimerElapsedEventHandler
        15. UserPreferenceCategory
        16. UserPreferenceChangedEventArgs
        17. UserPreferenceChangedEventHandler
        18. UserPreferenceChangingEventArgs
        19. UserPreferenceChangingEventHandler
      3. 26. System
        1. Activator
        2. AppDomain
        3. AppDomainSetup
        4. AppDomainUnloadedException
        5. ApplicationException
        6. ArgIterator
        7. ArgumentException class
        8. ArgumentNullException
        9. ArgumentOutOfRangeException
        10. ArithmeticException
        11. Array
        12. ArrayTypeMismatchException
        13. AssemblyLoadEventArgs
        14. AssemblyLoadEventHandler
        15. AsyncCallback
        16. Attribute
        17. AttributeTargets
        18. AttributeUsageAttribute
        19. BadImageFormatException
        20. BitConverter
        21. Boolean
        22. Buffer
        23. Byte
        24. CannotUnloadAppDomainException
        25. Char
        26. CharEnumerator
        27. CLSCompliantAttribute
        28. Console
        29. ContextBoundObject
        30. ContextMarshalException
        31. ContextStaticAttribute
        32. Convert
        33. CrossAppDomainDelegate
        34. DateTime
        35. DayOfWeek
        36. DBNull
        37. Decimal
        38. Delegate
        39. DivideByZeroException
        40. DllNotFoundException
        41. Double
        42. DuplicateWaitObjectException
        43. EntryPointNotFoundException
        44. Enum
        45. Environment
        46. Environment.SpecialFolder
        47. EventArgs
        48. EventHandler
        49. Exception
        50. ExecutionEngineException
        51. FieldAccessException
        52. FlagsAttribute
        53. FormatException
        54. GC
        55. Guid
        56. IAsyncResult
        57. ICloneable
        58. IComparable
        59. IConvertible
        60. ICustomFormatter
        61. IDisposable
        62. IFormatProvider
        63. IFormattable
        64. IndexOutOfRangeException
        65. Int16
        66. Int32
        67. Int64
        68. IntPtr
        69. InvalidCastException
        70. InvalidOperationException
        71. InvalidProgramException
        72. IServiceProvider
        73. LoaderOptimization
        74. LoaderOptimizationAttribute
        75. LocalDataStoreSlot
        76. MarshalByRefObject
        77. Math
        78. MemberAccessException
        79. MethodAccessException
        80. MissingFieldException
        81. MissingMemberException
        82. MissingMethodException
        83. MTAThreadAttribute
        84. MulticastDelegate
        85. MulticastNotSupportedException
        86. NonSerializedAttribute
        87. NotFiniteNumberException
        88. NotImplementedException
        89. NotSupportedException
        90. NullReferenceException
        91. Object
        92. ObjectDisposedException
        93. ObsoleteAttribute
        94. OperatingSystem
        95. OutOfMemoryException
        96. OverflowException
        97. ParamArrayAttribute
        98. PlatformID
        99. PlatformNotSupportedException
        100. Random
        101. RankException
        102. ResolveEventArgs
        103. ResolveEventHandler
        104. RuntimeTypeHandle
        105. SByte
        106. SerializableAttribute
        107. Single
        108. StackOverflowException
        109. STAThreadAttribute
        110. String
        111. SystemException
        112. ThreadStaticAttribute
        113. TimeSpan
        114. TimeZone
        115. Type
        116. TypeCode
        117. TypeInitializationException
        118. TypeLoadException
        119. TypeUnloadedException
        120. UInt16
        121. UInt32
        122. UInt64
        123. UIntPtr
        124. UnauthorizedAccessException
        125. UnhandledExceptionEventArgs
        126. UnhandledExceptionEventHandler
        127. Uri
        128. UriBuilder
        129. UriFormatException
        130. UriHostNameType
        131. UriPartial
        132. ValueType
        133. Version
        134. Void
        135. WeakReference
      4. 27. System.Collections
        1. ArrayList
        2. BitArray
        3. CaseInsensitiveComparer
        4. CaseInsensitiveHashCodeProvider
        5. CollectionBase
        6. Comparer
        7. DictionaryBase
        8. DictionaryEntry
        9. Hashtable
        10. ICollection
        11. IComparer
        12. IDictionary
        13. IDictionaryEnumerator
        14. IEnumerable
        15. IEnumerator
        16. IHashCodeProvider
        17. IList
        18. Queue
        19. ReadOnlyCollectionBase
        20. SortedList
        21. Stack
      5. 28. System.Collections.Specialized
        1. BitVector32
        2. BitVector32.Section
        3. CollectionsUtil
        4. HybridDictionary
        5. ListDictionary
        6. NameObjectCollectionBase
        7. NameObjectCollectionBase.KeysCollection
        8. NameValueCollection
        9. StringCollection
        10. StringDictionary
        11. StringEnumerator
      6. 29. System.Diagnostics
        1. BooleanSwitch
        2. ConditionalAttribute
        3. CounterCreationData
        4. CounterCreationDataCollection
        5. CounterSample
        6. CounterSampleCalculator
        7. Debug
        8. DebuggableAttribute
        9. Debugger
        10. DebuggerHiddenAttribute
        11. DebuggerStepThroughAttribute
        12. DefaultTraceListener
        13. EntryWrittenEventArgs
        14. EntryWrittenEventHandler
        15. EventLog
        16. EventLogEntry
        17. EventLogEntryCollection
        18. EventLogEntryType
        19. EventLogInstaller
        20. EventLogPermission
        21. EventLogPermissionAccess
        22. EventLogPermissionAttribute
        23. EventLogPermissionEntry
        24. EventLogPermissionEntryCollection
        25. EventLogTraceListener
        26. FileVersionInfo
        27. InstanceData
        28. InstanceDataCollection
        29. InstanceDataCollectionCollection
        30. MonitoringDescriptionAttribute
        31. PerformanceCounter
        32. PerformanceCounterCategory
        33. PerformanceCounterInstaller
        34. PerformanceCounterPermission
        35. PerformanceCounterPermissionAccess
        36. PerformanceCounterPermissionAttribute
        37. PerformanceCounterPermissionEntry
        38. PerformanceCounterPermissionEntryCollection
        39. PerformanceCounterType
        40. Process
        41. ProcessModule
        42. ProcessModuleCollection
        43. ProcessPriorityClass
        44. ProcessStartInfo
        45. ProcessThread
        46. ProcessThreadCollection
        47. ProcessWindowStyle
        48. StackFrame
        49. StackTrace
        50. Switch
        51. TextWriterTraceListener
        52. ThreadPriorityLevel
        53. ThreadState
        54. ThreadWaitReason
        55. Trace
        56. TraceLevel
        57. TraceListener
        58. TraceListenerCollection
        59. TraceSwitch
      7. 30. System.Globalization
        1. Calendar
        2. CalendarWeekRule
        3. CompareInfo
        4. CompareOptions
        5. CultureInfo
        6. CultureTypes
        7. DateTimeFormatInfo
        8. DateTimeStyles
        9. DaylightTime
        10. GregorianCalendar
        11. GregorianCalendarTypes
        12. HebrewCalendar
        13. HijriCalendar
        14. JapaneseCalendar
        15. JulianCalendar
        16. KoreanCalendar
        17. NumberFormatInfo
        18. NumberStyles
        19. RegionInfo
        20. SortKey
        21. StringInfo
        22. TaiwanCalendar
        23. TextElementEnumerator
        24. TextInfo
        25. ThaiBuddhistCalendar
        26. UnicodeCategory
      8. 31. System.IO
        1. BinaryReader
        2. BinaryWriter
        3. BufferedStream
        4. Directory
        5. DirectoryInfo
        6. DirectoryNotFoundException
        7. EndOfStreamException
        8. ErrorEventArgs
        9. ErrorEventHandler
        10. File
        11. FileAccess
        12. FileAttributes
        13. FileInfo
        14. FileLoadException
        15. FileMode
        16. FileNotFoundException
        17. FileShare
        18. FileStream
        19. FileSystemEventArgs
        20. FileSystemEventHandler
        21. FileSystemInfo
        22. FileSystemWatcher
        23. InternalBufferOverflowException
        24. IODescriptionAttribute
        25. IOException
        26. MemoryStream
        27. NotifyFilters
        28. Path
        29. PathTooLongException
        30. RenamedEventArgs
        31. RenamedEventHandler
        32. SeekOrigin
        33. Stream
        34. StreamReader
        35. StreamWriter
        36. StringReader
        37. StringWriter
        38. TextReader
        39. TextWriter
        40. WaitForChangedResult
        41. WatcherChangeTypes
      9. 32. System.IO.IsolatedStorage
        1. INormalizeForIsolatedStorage
        2. IsolatedStorage
        3. IsolatedStorageException
        4. IsolatedStorageFile
        5. IsolatedStorageFileStream
        6. IsolatedStorageScope
      10. 33. System.Net
        1. AuthenticationManager
        2. Authorization
        3. Cookie
        4. CookieCollection
        5. CookieContainer
        6. CookieException
        7. CredentialCache
        8. Dns
        9. DnsPermission
        10. DnsPermissionAttribute
        11. EndPoint
        12. EndpointPermission
        13. FileWebRequest
        14. FileWebResponse
        15. GlobalProxySelection
        16. HttpContinueDelegate
        17. HttpStatusCode
        18. HttpVersion
        19. HttpWebRequest
        20. HttpWebResponse
        21. IAuthenticationModule
        22. ICertificatePolicy
        23. ICredentials
        24. IPAddress
        25. IPEndPoint
        26. IPHostEntry
        27. IWebProxy
        28. IWebRequestCreate
        29. NetworkAccess
        30. NetworkCredential
        31. ProtocolViolationException
        32. ServicePoint
        33. ServicePointManager
        34. SocketAddress
        35. SocketPermission
        36. SocketPermissionAttribute
        37. TransportType
        38. WebClient
        39. WebException
        40. WebExceptionStatus
        41. WebHeaderCollection
        42. WebPermission
        43. WebPermissionAttribute
        44. WebProxy
        45. WebRequest
        46. WebResponse
      11. 34. System.Net.Sockets
        1. AddressFamily
        2. LingerOption
        3. MulticastOption
        4. NetworkStream
        5. ProtocolFamily
        6. ProtocolType
        7. SelectMode
        8. Socket
        9. SocketException
        10. SocketFlags
        11. SocketOptionLevel
        12. SocketOptionName
        13. SocketShutdown
        14. SocketType
        15. TcpClient
        16. TcpListener
        17. UdpClient
      12. 35. System.Reflection
        1. AmbiguousMatchException
        2. Assembly
        3. AssemblyAlgorithmIdAttribute
        4. AssemblyCompanyAttribute
        5. AssemblyConfigurationAttribute
        6. AssemblyCopyrightAttribute
        7. AssemblyCultureAttribute
        8. AssemblyDefaultAliasAttribute
        9. AssemblyDelaySignAttribute
        10. AssemblyDescriptionAttribute
        11. AssemblyFileVersionAttribute
        12. AssemblyFlagsAttribute
        13. AssemblyInformationalVersionAttribute
        14. AssemblyKeyFileAttribute
        15. AssemblyKeyNameAttribute
        16. AssemblyName
        17. AssemblyNameFlags
        18. AssemblyNameProxy
        19. AssemblyProductAttribute
        20. AssemblyTitleAttribute
        21. AssemblyTrademarkAttribute
        22. AssemblyVersionAttribute
        23. Binder
        24. BindingFlags
        25. CallingConventions
        26. ConstructorInfo
        27. CustomAttributeFormatException
        28. DefaultMemberAttribute
        29. EventAttributes
        30. EventInfo
        31. FieldAttributes
        32. FieldInfo
        33. ICustomAttributeProvider
        34. InterfaceMapping
        35. InvalidFilterCriteriaException
        36. IReflect
        37. ManifestResourceInfo
        38. MemberFilter
        39. MemberInfo
        40. MemberTypes
        41. MethodAttributes
        42. MethodBase
        43. MethodImplAttributes
        44. MethodInfo
        45. Missing
        46. Module
        47. ModuleResolveEventHandler
        48. ParameterAttributes
        49. ParameterInfo
        50. ParameterModifier
        51. Pointer
        52. PropertyAttributes
        53. PropertyInfo
        54. ReflectionTypeLoadException
        55. ResourceAttributes
        56. ResourceLocation
        57. StrongNameKeyPair
        58. TargetException
        59. TargetInvocationException
        60. TargetParameterCountException
        61. TypeAttributes
        62. TypeDelegator
        63. TypeFilter
      13. 36. System.Reflection.Emit
        1. AssemblyBuilder
        2. AssemblyBuilderAccess
        3. ConstructorBuilder
        4. CustomAttributeBuilder
        5. EnumBuilder
        6. EventBuilder
        7. EventToken
        8. FieldBuilder
        9. FieldToken
        10. FlowControl
        11. ILGenerator
        12. Label
        13. LocalBuilder
        14. MethodBuilder
        15. MethodRental
        16. MethodToken
        17. ModuleBuilder
        18. OpCode
        19. OpCodes
        20. OpCodeType
        21. OperandType
        22. PackingSize
        23. ParameterBuilder
        24. ParameterToken
        25. PEFileKinds
        26. PropertyBuilder
        27. PropertyToken
        28. SignatureHelper
        29. SignatureToken
        30. StackBehaviour
        31. StringToken
        32. TypeBuilder
        33. TypeToken
        34. UnmanagedMarshal
      14. 37. System.Runtime.InteropServices
        1. ArrayWithOffset
        2. AssemblyRegistrationFlags
        3. CallingConvention
        4. CharSet
        5. ClassInterfaceAttribute
        6. ClassInterfaceType
        7. CoClassAttribute
        8. ComAliasNameAttribute
        9. ComConversionLossAttribute
        10. COMException
        11. ComImportAttribute
        12. ComInterfaceType
        13. ComMemberType
        14. ComRegisterFunctionAttribute
        15. ComSourceInterfacesAttribute
        16. ComUnregisterFunctionAttribute
        17. ComVisibleAttribute
        18. CurrencyWrapper
        19. DispatchWrapper
        20. DispIdAttribute
        21. DllImportAttribute
        22. ErrorWrapper
        23. ExtensibleClassFactory
        24. ExternalException
        25. FieldOffsetAttribute
        26. GCHandle
        27. GCHandleType
        28. GuidAttribute
        29. HandleRef
        30. IDispatchImplAttribute
        31. IDispatchImplType
        32. InAttribute
        33. InterfaceTypeAttribute
        34. InvalidComObjectException
        35. InvalidOleVariantTypeException
        36. IRegistrationServices
        37. LayoutKind
        38. LCIDConversionAttribute
        39. Marshal
        40. MarshalAsAttribute
        41. MarshalDirectiveException
        42. ObjectCreationDelegate
        43. OptionalAttribute
        44. OutAttribute
        45. PreserveSigAttribute
        46. ProgIdAttribute
        47. RegistrationServices
        48. RuntimeEnvironment
        49. SafeArrayRankMismatchException
        50. SafeArrayTypeMismatchException
        51. SEHException
        52. StructLayoutAttribute
        53. UnknownWrapper
        54. UnmanagedType
        55. VarEnum
        56. IExpando
      15. 38. System.Runtime.Serialization
        1. Formatter
        2. FormatterConverter
        3. FormatterServices
        4. IDeserializationCallback
        5. IFormatter
        6. IFormatterConverter
        7. IObjectReference
        8. ISerializable
        9. ISerializationSurrogate
        10. ISurrogateSelector
        11. ObjectIDGenerator
        12. ObjectManager
        13. SerializationBinder
        14. SerializationEntry
        15. SerializationException
        16. SerializationInfo
        17. SerializationInfoEnumerator
        18. StreamingContext
        19. StreamingContextStates
        20. SurrogateSelector
      16. 39. System.Runtime.Serialization.Formatters
        1. BinaryFormatter
        2. FormatterAssemblyStyle
        3. FormatterTypeStyle
        4. IFieldInfo
        5. ISoapMessage
        6. ServerFault
        7. SoapFault
        8. SoapFormatter
        9. SoapMessage
      17. 40. System.Text
        1. ASCIIEncoding
        2. Decoder
        3. Encoder
        4. Encoding
        5. StringBuilder
        6. UnicodeEncoding
        7. UTF7Encoding
        8. UTF8Encoding
      18. 41. System.Text.RegularExpressions
        1. Capture
        2. CaptureCollection
        3. Group
        4. GroupCollection
        5. Match
        6. MatchCollection
        7. MatchEvaluator
        8. Regex
        9. RegexCompilationInfo
        10. RegexOptions
      19. 42. System.Threading
        1. ApartmentState
        2. AutoResetEvent
        3. Interlocked
        4. IOCompletionCallback
        5. LockCookie
        6. ManualResetEvent
        7. Monitor
        8. Mutex
        9. NativeOverlapped
        10. Overlapped
        11. ReaderWriterLock
        12. RegisteredWaitHandle
        13. SynchronizationLockException
        14. Thread
        15. ThreadAbortException
        16. ThreadExceptionEventArgs
        17. ThreadExceptionEventHandler
        18. ThreadInterruptedException
        19. ThreadPool
        20. ThreadPriority
        21. ThreadStart
        22. ThreadState
        23. ThreadStateException
        24. Timeout
        25. Timer
        26. TimerCallback
        27. WaitCallback
        28. WaitHandle
        29. WaitOrTimerCallback
      20. 43. System.Timers
        1. ElapsedEventArgs
        2. ElapsedEventHandler
        3. Timer
        4. TimersDescriptionAttribute
      21. 44. System.Xml
        1. EntityHandling
        2. Formatting
        3. IHasXmlNode
        4. IXmlLineInfo
        5. NameTable
        6. ReadState
        7. ValidationType
        8. WhitespaceHandling
        9. WriteState
        10. XmlAttribute
        11. XmlAttributeCollection
        12. XmlCDataSection
        13. XmlCharacterData
        14. XmlComment
        15. XmlConvert
        16. XmlDataDocument
        17. XmlDeclaration
        18. XmlDocument
        19. XmlDocumentFragment
        20. XmlDocumentType
        21. XmlElement
        22. XmlEntity
        23. XmlEntityReference
        24. XmlException
        25. XmlImplementation
        26. XmlLinkedNode
        27. XmlNamedNodeMap
        28. XmlNamespaceManager
        29. XmlNameTable
        30. XmlNode
        31. XmlNodeChangedAction
        32. XmlNodeChangedEventArgs
        33. XmlNodeChangedEventHandler
        34. XmlNodeList
        35. XmlNodeOrder
        36. XmlNodeReader
        37. XmlNodeType
        38. XmlNotation
        39. XmlParserContext
        40. XmlProcessingInstruction
        41. XmlQualifiedName
        42. XmlReader
        43. XmlResolver
        44. XmlSignificantWhitespace
        45. XmlSpace
        46. XmlText
        47. XmlTextReader
        48. XmlTextWriter
        49. XmlTokenizedType
        50. XmlUrlResolver
        51. XmlValidatingReader
        52. XmlWhitespace
        53. XmlWriter
      22. 45. System.Xml.XPath
        1. IXPathNavigable
        2. XmlCaseOrder
        3. XmlDataType
        4. XmlSortOrder
        5. XPathDocument
        6. XPathException
        7. XPathExpression
        8. XPathNamespaceScope
        9. XPathNavigator
        10. XPathNodeIterator
        11. XPathNodeType
        12. XPathResultType
      23. 46. System.Xml.Xsl
        1. IXsltContextFunction
        2. IXsltContextVariable
        3. XsltArgumentList
        4. XsltCompileException
        5. XsltContext
        6. XsltException
        7. XslTransform
    6. V. Appendixes
      1. A. Regular Expressions
      2. B. Format Specifiers
        1. Picture Format Specifiers
        2. DateTime Format Specifiers
      3. C. Data Marshaling
      4. D. C# Keywords
      5. E. Namespaces and Assemblies
      6. Type, Method, Property Event, and Field Index
    7. Index
    8. Colophon