Table of content

   
  Table of Contents
  Index
  Reviews
  Reader Reviews
  Errata
  Academic
C# Cookbook
By Jay  Hilyard, Stephen  Teilhet
 
Publisher : O'Reilly
Pub Date : January 2004
ISBN : 0-596-00339-0
Pages : 800
Dedication
      Copyright
      Preface
        Who This Book Is For
        What You Need to Use This Book
        How This Book Is Organized
        What Was Left Out
        Conventions Used in This Book
        About the Code
        Using Code Examples
        Platform Notes
        Comments and Questions
        Acknowledgments
        Chapter 1.   Numbers
        Recipe  1.1.   Determining Approximate Equality Between a Fraction and Floating-Point Value
        Recipe  1.2.   Converting Degrees to Radians
        Recipe  1.3.   Converting Radians to Degrees
        Recipe  1.4.   Using the Bitwise Complement Operator with Various Data Types
        Recipe  1.5.   Test for an Even or Odd Value
        Recipe  1.6.   Obtaining the Most- or Least-Significant Bits of a Number
        Recipe  1.7.   Converting a Number in Another Base to Base10
        Recipe  1.8.   Determining Whether a String Is a Valid Number
        Recipe  1.9.   Rounding a Floating-Point Value
        Recipe  1.10.   Different Rounding Algorithms
        Recipe  1.11.   Converting Celsius to Fahrenheit
        Recipe  1.12.   Converting Fahrenheit to Celsius
        Recipe  1.13.   Safely Performing a Narrowing Numeric Cast
        Recipe  1.14.   Finding the Length of Any Three Sidesof a Right Triangle
        Recipe  1.15.   Finding the Angles of a Right Triangle
        Chapter 2.   Strings and Characters
        Recipe  2.1.   Determining the Kind of Character
        Recipe  2.2.   Determining Whether a Character Is Within a Specified Range
        Recipe  2.3.   Controlling Case Sensitivity when Comparing Two Characters
        Recipe  2.4.   Finding All Occurrences of a Character Within a String
        Recipe  2.5.   Finding the Location of All Occurrencesof a String Within Another String
        Recipe  2.6.   The Poor Man's Tokenizer
        Recipe  2.7.   Controlling Case Sensitivity when Comparing Two Strings
        Recipe  2.8.   Comparing a String to the Beginning or End of a Second String
        Recipe  2.9.   Inserting Text into a String
        Recipe  2.10.   Removing or Replacing Characters Within a String
        Recipe  2.11.   Encoding Binary Data as Base64
        Recipe  2.12.   Decoding a Base64-Encoded Binary
        Recipe  2.13.   Converting a String Returned as a Byte[ ] Back into a String
        Recipe  2.14.   Passing a String to a Method that Accepts Only a Byte[ ]
        Recipe  2.15.   Converting Strings to Their Equivalent Value Type
        Recipe  2.16.   Formatting Data in Strings
        Recipe  2.17.   Creating a Delimited String
        Recipe  2.18.   Extracting Items from a Delimited String
        Recipe  2.19.   Setting the Maximum Number of Characters a String Can Contain
        Recipe  2.20.   Iterating Over Each Character in a String
        Recipe  2.21.   Improving String Comparison Performance
        Recipe  2.22.   Improving StringBuilder Performance
        Recipe  2.23.   Pruning Characters from the Headand/or Tail of a String
        Chapter 3.   Classes and Structures
        Recipe  3.1.   Creating Union-Type Structures
        Recipe  3.2.   Allowing a Type to Represent Itself as a String
        Recipe  3.3.   Converting a String Representation of an Object into an Actual Object
        Recipe  3.4.   Polymorphism via Concrete or Abstract Base Classes
        Recipe  3.5.   Making a Type Sortable
        Recipe  3.6.   Making a Type Searchable
        Recipe  3.7.   Indirectly Overloading the +=, -=, /=, and *= Operators
        Recipe  3.8.   Indirectly Overloading the &&, , and ?: Operators
        Recipe  3.9.   Improving the Performance of a Structure's Equals Method
        Recipe  3.10.   Turning Bits On or Off
        Recipe  3.11.   Making Error-Free Expressions
        Recipe  3.12.   Minimizing (Reducing) Your Boolean Logic
        Recipe  3.13.   Converting Between Simple Types in a Language Agnostic Manner
        Recipe  3.14.   Determining Whether to Use theCast Operator, the as Operator, or theis Operator
        Recipe  3.15.   Casting with the as Operator
        Recipe  3.16.   Determining a Variable's Type with the is Operator
        Recipe  3.17.   Polymorphism via Interfaces
        Recipe  3.18.   Calling the Same Method on Multiple Object Types
        Recipe  3.19.   Adding a Notification Callback Using an Interface
        Recipe  3.20.   Using Multiple Entry Points toVersion an Application
        Recipe  3.21.   Preventing the Creation of an Only Partially Initialized Object
        Recipe  3.22.   Returning Multiple Items from a Method
        Recipe  3.23.   Parsing Command-Line Parameters
        Recipe  3.24.   Retrofitting a Class to Interoperate with COM
        Recipe  3.25.   Initializing a Constant Field at Runtime
        Recipe  3.26.   Writing Code that Is Compatible with the Widest Range of Managed Languages
        Recipe  3.27.   Implementing Nested foreach Functionality in a Class
        Recipe  3.28.   Building Cloneable Classes
        Recipe  3.29.   Assuring an Object's Disposal
        Recipe  3.30.   Releasing a COM Object ThroughManaged Code
        Recipe  3.31.   Creating an Object Cache
        Recipe  3.32.   The Single Instance Object
        Recipe  3.33.   Choosing a Serializer
        Recipe  3.34.   Creating Custom Enumerators
        Recipe  3.35.   Rolling Back Object Changes
        Recipe  3.36.   Disposing of Unmanaged Resources
        Recipe  3.37.   Determining Where Boxing and Unboxing Occur
        Chapter 4.   Enumerations
        Recipe  4.1.   Displaying an Enumeration Value as a String
        Recipe  4.2.   Converting Plain Text to an Equivalent Enumeration Value
        Recipe  4.3.   Testing for a Valid Enumeration Value
        Recipe  4.4.   Testing for a Valid Enumeration of Flags
        Recipe  4.5.   Using Enumerated Members in a Bitmask
        Recipe  4.6.   Determining Whether One or More Enumeration Flags Are Set
        Chapter 5.   Exception Handling
        Recipe  5.1.   Verifying Critical Parameters
        Recipe  5.2.   Indicating Where Exceptions Originate
        Recipe  5.3.   Choosing when to Throw a Particular Exception
        Recipe  5.4.   Handling Derived Exceptions Individually
        Recipe  5.5.   Assuring Exceptions are Not Lost when Using Finally Blocks
        Recipe  5.6.   Handling Exceptions Thrown from Methods Invoked via Reflection
        Recipe  5.7.   Debugging Problems whenLoading an Assembly
        Recipe  5.8.   HRESULT-Exception Mapping
        Recipe  5.9.   Handling User-Defined HRESULTs
        Recipe  5.10.   Preventing Unhandled Exceptions
        Recipe  5.11.   Displaying Exception Information
        Recipe  5.12.   Getting to the Root of a Problem Quickly
        Recipe  5.13.   Creating a New Exception Type
        Recipe  5.14.   Obtaining a Stack Trace
        Recipe  5.15.   Breaking on a First Chance Exception
        Recipe  5.16.   Preventing the Nefarious TypeInitializationException
        Recipe  5.17.   Handling Exceptions Thrown from an Asynchronous Delegate
        Chapter 6.   Diagnostics
        Recipe  6.1.   Controlling Tracing Output inProduction Code
        Recipe  6.2.   Providing Fine-Grained Control Over Debugging/Tracing Output
        Recipe  6.3.   Creating Your Own Custom Switch Class
        Recipe  6.4.   A Custom Trace Class that Outputs Information in an XML Format
        Recipe  6.5.   Conditionally Compiling Blocks of Code
        Recipe  6.6.   Determining Whether a Process Has Stopped Responding
        Recipe  6.7.   Using One or More Event Logs in Your Application
        Recipe  6.8.   Changing the Maximum Size of a Custom Event Log
        Recipe  6.9.   Searching Event Log Entries
        Recipe  6.10.   Watching the Event Log for a Specific Entry
        Recipe  6.11.   Finding All Sources Belonging to a Specific Event Log
        Recipe  6.12.   Implementing a Simple Performance Counter
        Recipe  6.13.   Implementing Performance Counters that Require a Base Counter
        Recipe  6.14.   Enable/Disable Complex Tracing Code
        Chapter 7.   Delegates and Events
        Recipe  7.1.   Controlling when and if a Delegate Fires Within a Multicast Delegate
        Recipe  7.2.   Obtaining Return Values from Each Delegate in a Multicast Delegate
        Recipe  7.3.   Handling Exceptions Individually for Each Delegate in a Multicast Delegate
        Recipe  7.4.   Converting a Synchronous Delegate to an Asynchronous Delegate
        Recipe  7.5.   Adding Events to a Sealed Class
        Recipe  7.6.   Passing Specialized Parameters to and from an Event
        Recipe  7.7.   An Advanced Interface Search Mechanism
        Recipe  7.8.   An Advanced Member Search Mechanism
        Recipe  7.9.   Observing Additions and Modifications to a Hashtable
        Recipe  7.10.   Using the Windows Keyboard Hook
        Recipe  7.11.   Using Windows Hooks to Manipulate the Mouse
        Chapter 8.   Regular Expressions
        Recipe  8.1.   Enumerating Matches
        Recipe  8.2.   Extracting Groups from a MatchCollection
        Recipe  8.3.   Verifying the Syntax of a Regular Expression
        Recipe  8.4.   Quickly Finding Only the Last Match in a String
        Recipe  8.5.   Replacing Characters or Words in a String
        Recipe  8.6.   Augmenting the Basic String Replacement Function
        Recipe  8.7.   A Better Tokenizer
        Recipe  8.8.   Compiling Regular Expressions
        Recipe  8.9.   Counting Lines of Text
        Recipe  8.10.   Returning the Entire Line in Which a Match Is Found
        Recipe  8.11.   Finding a Particular Occurrence of a Match
        Recipe  8.12.   Using Common Patterns
        Recipe  8.13.   Documenting Your Regular Expressions
        Chapter 9.   Collections
        Recipe  9.1.   Swapping Two Elements in an Array
        Recipe  9.2.   Quickly Reversing an Array
        Recipe  9.3.   Reversing a Two-Dimensional Array
        Recipe  9.4.   Reversing a Jagged Array
        Recipe  9.5.   A More Flexible StackTrace Class
        Recipe  9.6.   Determining the Number of Times an Item Appears in an ArrayList
        Recipe  9.7.   Retrieving All Instances of a Specific Itemin an ArrayList
        Recipe  9.8.   Inserting and Removing Items from an Array
        Recipe  9.9.   Keeping Your ArrayList Sorted
        Recipe  9.10.   Sorting a Hashtable's Keys and/or Values
        Recipe  9.11.   Creating a Hashtable with Max and Min Size Boundaries
        Recipe  9.12.   Creating a Hashtable with Max and Min Value Boundaries
        Recipe  9.13.   Displaying an Array's Data as a Delimited String
        Recipe  9.14.   Storing Snapshots of Lists in an Array
        Recipe  9.15.   Creating a Strongly Typed Collection
        Recipe  9.16.   Persisting a Collection Between Application Sessions
        Chapter 10.   Data Structures and Algorithms
        Recipe  10.1.   Creating a Hash Code for a Data Type
        Recipe  10.2.   Creating a Priority Queue
        Recipe  10.3.   Creating a More Versatile Queue
        Recipe  10.4.   Determining Where Characters or Strings Do Not Balance
        Recipe  10.5.   Creating a One-to-Many Map (MultiMap)
        Recipe  10.6.   Creating a Binary Tree
        Recipe  10.7.   Creating an n-ary Tree
        Recipe  10.8.   Creating a Set Object
        Chapter 11.   Filesystem I/O
        Recipe  11.1.   Creating, Copying, Moving, and Deleting a File
        Recipe  11.2.   Manipulating File Attributes
        Recipe  11.3.   Renaming a File
        Recipe  11.4.   Determining Whether a File Exists
        Recipe  11.5.   Choosing a Method of Opening a File or Stream for Reading and/or Writing
        Recipe  11.6.   Randomly Accessing Part of a File
        Recipe  11.7.   Outputting a Platform-Independent EOL Character
        Recipe  11.8.   Create, Write to, and Read from a File
        Recipe  11.9.   Determining Whether a Directory Exists
        Recipe  11.10.   Creating, Moving, and Deleting a Directory
        Recipe  11.11.   Manipulating Directory Attributes
        Recipe  11.12.   Renaming a Directory
        Recipe  11.13.   Searching for Directories or FilesUsing Wildcards
        Recipe  11.14.   Obtaining the Directory Tree
        Recipe  11.15.   Parsing a Path
        Recipe  11.16.   Parsing Paths in Environment Variables
        Recipe  11.17.   Verifying a Path
        Recipe  11.18.   Using a Temporary File in Your Application
        Recipe  11.19.   Opening a File Stream with just aFile Handle
        Recipe  11.20.   Write to Multiple Output Files at One Time
        Recipe  11.21.   Launching and Interacting withConsole Utilities
        Recipe  11.22.   Locking Subsections of a File
        Recipe  11.23.   Watching the Filesystem for Specific Changes to One or More Files or Directories
        Recipe  11.24.   Waiting for an Action to Occurin the Filesystem
        Recipe  11.25.   Comparing Version Information of Two Executable Modules
        Chapter 12.   Reflection
        Recipe  12.1.   Listing Imported Assemblies
        Recipe  12.2.   Listing Exported Types
        Recipe  12.3.   Finding Overridden Methods
        Recipe  12.4.   Finding Members in an Assembly
        Recipe  12.5.   Finding Members Within an Interface
        Recipe  12.6.   Obtaining Types Nested Within a Type
        Recipe  12.7.   Displaying the Inheritance Hierarchy for a Type
        Recipe  12.8.   Finding the Subclasses of a Type
        Recipe  12.9.   Finding All Serializable Types Within an Assembly
        Recipe  12.10.   Controlling Additions to an ArrayList Through Attributes
        Recipe  12.11.   Filtering Output when Obtaining Members
        Recipe  12.12.   Dynamically Invoking Members
        Chapter 13.   Networking
        Recipe  13.1.   Converting an IP Address to a Hostname
        Recipe  13.2.   Converting a Hostname to an IP Address
        Recipe  13.3.   Parsing a URI
        Recipe  13.4.   Forming an Absolute URI
        Recipe  13.5.   Handling Web Server Errors
        Recipe  13.6.   Communicating with a Web Server
        Recipe  13.7.   Going Through a Proxy
        Recipe  13.8.   Obtaining the HTML from a URL
        Recipe  13.9.   Writing a TCP Server
        Recipe  13.10.   Writing a TCP Client
        Recipe  13.11.   Simulating Form Execution
        Recipe  13.12.   Downloading Data from a Server
        Recipe  13.13.   Using Named Pipes to Communicate
        Chapter 14.   Security
        Recipe  14.1.   Controlling Access to Types in aLocal Assembly
        Recipe  14.2.   Encrypting/Decrypting a String
        Recipe  14.3.   Encrypting and Decrypting a File
        Recipe  14.4.   Cleaning Up Cryptography Information
        Recipe  14.5.   Verifying that a String Is Uncorrupted During Transmission
        Recipe  14.6.   Wrapping a String Hash for Ease of Use
        Recipe  14.7.   A Better Random Number Generator
        Recipe  14.8.   Securely Storing Data
        Recipe  14.9.   Making a Security Assert Safe
        Recipe  14.10.   Preventing Malicious Modifications to an Assembly
        Recipe  14.11.   Verifying that an Assembly Has Been Granted Specific Permissions
        Recipe  14.12.   Minimizing the Attack Surface of an Assembly
        Chapter 15.   Threading
        Recipe  15.1.   Creating Per-Thread Static Fields
        Recipe  15.2.   Providing Thread Safe Access to Class Members
        Recipe  15.3.   Preventing Silent Thread Termination
        Recipe  15.4.   Polling an Asynchronous Delegate
        Recipe  15.5.   Timing Out an Asynchronous Delegate
        Recipe  15.6.   Being Notified of the Completionof an Asynchronous Delegate
        Recipe  15.7.   Waiting for Worker Thread Completion
        Recipe  15.8.   Synchronizing the Reading and Writingof a Resource Efficiently
        Recipe  15.9.   Determining Whether a Requestfor a Pooled Thread Will Be Queued
        Recipe  15.10.   Waiting for All Threads in theThread Pool to Finish
        Recipe  15.11.   Configuring a Timer
        Recipe  15.12.   Storing Thread-Specific Data Privately
        Chapter 16.   Unsafe Code
        Recipe  16.1.   Controlling Changes to Pointers Passedto Methods
        Recipe  16.2.   Comparing Pointers
        Recipe  16.3.   Navigating Arrays
        Recipe  16.4.   Manipulating a Pointer to a Fixed Array
        Recipe  16.5.   Returning a Pointer to a Particular Element in an Array
        Recipe  16.6.   Creating and Using an Array of Pointers
        Recipe  16.7.   Creating and Using an Array of Pointersto Unknown Types
        Recipe  16.8.   Switching Unknown Pointer Types
        Recipe  16.9.   Breaking Up Larger Numbers into Their Equivalent Byte Array Representation
        Recipe  16.10.   Converting Pointers to a Byte[ ], SByte[ ],or Char[ ] to a String
        Chapter 17.   XML
        Recipe  17.1.   Reading and Accessing XML Datain Document Order
        Recipe  17.2.   Reading XML on the Web
        Recipe  17.3.   Querying the Contents of an XML Document
        Recipe  17.4.   Validating XML
        Recipe  17.5.   Creating an XML Document Programmatically
        Recipe  17.6.   Detecting Changes to an XML Document
        Recipe  17.7.   Handling Invalid Characters in anXML String
        Recipe  17.8.   Transforming XML to HTML
        Recipe  17.9.   Tearing Apart an XML Document
        Recipe  17.10.   Putting Together an XML Document
      Colophon
      Index


C# Cookbook
C# 3.0 Cookbook
ISBN: 059651610X
EAN: 2147483647
Year: 2003
Pages: 315

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net