C# 3.0 Cookbook. 3rd Edition - Helion
ISBN: 978-05-965-5480-4
stron: 896, Format: ebook
Data wydania: 2007-12-20
Księgarnia: Helion
Cena książki: 160,65 zł (poprzednio: 186,80 zł)
Oszczędzasz: 14% (-26,15 zł)
Completely updated for C# 3.0 and the .NET 3.5 platform, the new edition of this bestseller offers more than 250 code recipes to common and not-so-common problems that C# programmers face every day. Every recipe in the book has been reconsidered with more than a third of them rewritten to take advantage of new C# 3.0 features. If you prefer solutions you can use today to general C# language instruction, and quick answers to theory, this is your book.
C# 3.0 Cookbook offers a new chapter on LINQ (language integrated query), plus two expanded chapters for recipes for extension methods, lambda functions, object initializers, new synchronization primitives and more. The new edition is also complemented by a public wiki, which not only includes all of the C# 2.0 recipes from the previous edition unchanged by the release of C# 3.0, but invites you to suggest better ways to solve those tasks.
Here are some of topics covered:
- LINQ
- Numeric data types and Enumerations
- Strings and characters
- Classes and structures
- Generics
- Collections
- Exception handling
- Delegates, events, and lambda expressions
- Filesystem interactions
- Web site access
- XML usage (including LINQ to XML, XPath and XSLT)
- Networking
- Threading
- Data Structures & Algorithms
Osoby które kupowały "C# 3.0 Cookbook. 3rd Edition", wybierały także:
- C# 9.0 w pigułce 173,87 zł, (53,90 zł -69%)
- Gray Hat C#. Język C# w kontroli i łamaniu zabezpieczeń 57,74 zł, (17,90 zł -69%)
- ASP.NET Core 6. Kurs video. Rozwijaj aplikacje webowe z Entity Framework Core 179,00 zł, (71,60 zł -60%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
- Testowanie automatyczne w .NET. Kurs video. Zastosowania frameworka nUnit 169,00 zł, (76,05 zł -55%)
Spis treści
C# 3.0 Cookbook. 3rd Edition eBook -- spis treści
- C# 3.0 Cookbook, 3rd Edition
- SPECIAL OFFER: Upgrade this ebook with OReilly
- A Note Regarding Supplemental Files
- Preface
- 00.1. Who This Book Is For
- 00.2. What You Need to Use This Book
- 00.3. Platform Notes
- 00.4. How This Book Is Organized
- 00.5. What Was Left Out
- 00.6. Conventions Used in This Book
- 00.7. About the Code
- 00.8. Using Code Examples
- 00.9. Comments and Questions
- 00.10. Safari Books Online
- 00.11. Acknowledgments
- From Jay Hilyard
- From Steve Teilhet
- 1. Language Integrated Query (LINQ)
- 1.0. Introduction
- 1.1. Query a Message Queue
- Problem
- Solution
- Discussion
- See Also
- 1.2. Using Set Semantics with Data
- Problem
- Solution
- Discussion
- See Also
- 1.3. Reuse Parameterized Queries with LINQ to SQL
- Problem
- Solution
- Discussion
- See Also
- 1.4. Sort Results in a Culture-Sensitive Manner
- Problem
- Solution
- Discussion
- See Also
- 1.5. Adding Functional Extensions for Use with LINQ
- Problem
- Solution
- Discussion
- See Also
- 1.6. Query and Join Across Data Repositories
- Problem
- Solution
- Discussion
- See Also
- 1.7. Querying Configuration Files with LINQ
- Problem
- Solution
- Discussion
- See Also
- 1.8. Creating XML Straight from a Database
- Problem
- Solution
- Discussion
- See Also
- 1.9. Being Selective About Your Query Results
- Problem
- Solution
- Discussion
- See Also
- 1.10. Using LINQ with Collections That Dont Support IEnumerable<T>
- Problem
- Solution
- Discussion
- See Also
- 2. Strings and Characters
- 2.0. Introduction
- 2.1. Determining the Kind of Character a Char Contains
- Problem
- Solution
- Discussion
- See Also
- 2.2. Controlling Case Sensitivity When Comparing Two Characters
- Problem
- Solution
- Discussion
- 2.3. Finding the Location of All Occurrences of a String Within Another String
- Problem
- Solution
- Discussion
- See Also
- 2.4. Controlling Case Sensitivity When Comparing Two Strings
- Problem
- Solution
- Discussion
- See Also
- 2.5. Comparing a String to the Beginning or End of a Second String
- Problem
- Solution
- Discussion
- See Also
- 2.6. Inserting Text into a String
- Problem
- Solution
- Discussion
- See Also
- 2.7. Removing or Replacing Characters Within a String
- Problem
- Solution
- Discussion
- See Also
- 2.8. Encoding Binary Data As Base64
- Problem
- Solution
- Discussion
- See Also
- 2.9. Decoding a Base64-Encoded Binary
- Problem
- Solution
- Discussion
- See Also
- 2.10. Converting a String Returned As a Byte[] Back into a String
- Problem
- Solution
- Discussion
- See Also
- 2.11. Passing a String to a Method That Accepts Only a Byte[]
- Problem
- Solution
- Discussion
- See Also
- 2.12. Converting Strings to Other Types
- Problem
- Solution
- Discussion
- 2.13. Creating a Delimited String
- Problem
- Solution
- Discussion
- See Also
- 2.14. Extracting Items from a Delimited String
- Problem
- Solution
- Discussion
- See Also
- 2.15. Iterating over Each Character in a String
- Problem
- Solution
- Discussion
- 2.16. Pruning Characters from the Head and/or Tail of a String
- Problem
- Solution
- Discussion
- See Also
- 2.17. Testing a String for Null or Empty
- Problem
- Solution
- Discussion
- See Also
- 2.18. Appending a Line
- Problem
- Solution
- Discussion
- See Also
- 3. Classes and Structures
- 3.0. Introduction
- 3.1. Creating Union-Type Structures
- Problem
- Solution
- Discussion
- See Also
- 3.2. Making a Type Sortable
- Problem
- Solution
- Discussion
- See Also
- 3.3. Making a Type Searchable
- Problem
- Solution
- Discussion
- See Also
- 3.4. Indirectly Overloading the +=, -=, /=, and *= Operators
- Problem
- Solution
- Discussion
- See Also
- 3.5. Indirectly Overloading the &&, ||, and ?: Operators
- Problem
- Solution
- Discussion
- See Also
- 3.6. Making Error-Free Expressions
- Problem
- Solution
- Discussion
- 3.7. Reducing Your Boolean Logic
- Problem
- Solution
- Discussion
- See Also
- 3.8. Converting Between Simple Types in a Programming Language-Agnostic Manner
- Problem
- Solution
- Discussion
- See Also
- 3.9. Determining When to Use the cast Operator, the as Operator, or the is Operator
- Problem
- Solution
- Discussion
- See Also
- 3.10. Casting with the as Operator
- Problem
- Solution
- Discussion
- See Also
- 3.11. Determining a Variable's Type with the is Operator
- Problem
- Solution
- Discussion
- See Also
- 3.12. Returning Multiple Items from a Method
- Problem
- Solution
- Discussion
- 3.13. Parsing Command-Line Parameters
- Problem
- Solution
- Discussion
- See Also
- 3.14. Initializing a Constant Field at Runtime
- Problem
- Solution
- Discussion
- See Also
- 3.15. Building Cloneable Classes
- Problem
- Solution
- Discussion
- See Also
- 3.16. Assuring an Object's Disposal
- Problem
- Solution
- Discussion
- See Also
- 3.17. Disposing of Unmanaged Resources
- Problem
- Solution
- Discussion
- See Also
- 3.18. Determining Where Boxing and Unboxing Occur
- Problem
- Solution
- Discussion
- See Also
- 4. Generics
- 4.0. Introduction
- 4.1. Deciding When and Where to Use Generics
- Problem
- Solution
- Discussion
- See Also
- 4.2. Understanding Generic Types
- Problem
- Solution
- Discussion
- See Also
- 4.3. Replacing the ArrayList with Its Generic Counterpart
- Problem
- Solution
- Discussion
- See Also
- 4.4. Replacing the Stack and Queue with Their Generic Counterparts
- Problem
- Solution
- Discussion
- See Also
- 4.5. Using a Linked List
- Problem
- Solution
- Discussion
- See Also
- 4.6. Creating a Value Type That Can Be Initialized to Null
- Problem
- Solution
- Discussion
- See Also
- 4.7. Reversing the Contents of a Sorted List
- Problem
- Solution
- Discussion
- See Also
- 4.8. Making Read-Only Collections the Generic Way
- Problem
- Solution
- Discussion
- See Also
- 4.9. Replacing the Hashtable with Its Generic Counterpart
- Problem
- Solution
- Discussion
- See Also
- 4.10. Using foreach with Generic Dictionary Types
- Problem
- Solution
- Discussion
- See Also
- 4.11. Constraining Type Arguments
- Problem
- Solution
- Discussion
- See Also
- 4.12. Initializing Generic Variables to Their Default Values
- Problem
- Solution
- Discussion
- See Also
- 5. Collections
- 5.0. Introduction
- 5.1. Swapping Two Elements in an Array
- Problem
- Solution
- Discussion
- 5.2. Reversing an Array Quickly
- Problem
- Solution
- Discussion
- See Also
- 5.3. Writing a More Flexible StackTrace Class
- Problem
- Solution
- Discussion
- See Also
- 5.4. Determining the Number of Times an Item Appears in a List<T>
- Problem
- Solution
- Discussion
- See Also
- 5.5. Retrieving All Instances of a Specific Item in a List<T>
- Problem
- Solution
- Discussion
- See Also
- 5.6. Inserting and Removing Items from an Array
- Problem
- Solution
- Discussion
- See Also
- 5.7. Keeping Your List<T> Sorted
- Problem
- Solution
- Discussion
- See Also
- 5.8. Sorting a Dictionary's Keys and/or Values
- Problem
- Solution
- Discussion
- See Also
- 5.9. Creating a Dictionary with Max and Min Value Boundaries
- Problem
- Solution
- Discussion
- See Also
- 5.10. Storing Snapshots of Lists in an Array
- Problem
- Solution
- Discussion
- See Also
- 5.11. Persisting a Collection Between Application Sessions
- Problem
- Solution
- Discussion
- See Also
- 5.12. Testing Every Element in an Array or List<T>
- Problem
- Solution
- Discussion
- See Also
- 5.13. Performing an Action on Each Element in an Array or List<T>
- Problem
- Solution
- Discussion
- See Also
- 5.14. Creating a Read-Only Array or List<T>
- Problem
- Solution
- Discussion
- See Also
- 6. Iterators, Partial Types, and Partial Methods
- 6.0. Introduction
- 6.1. Creating an lterator on a Generic Type
- Problem
- Solution
- Discussion
- See Also
- 6.2. Creating an Iterator on a Nongeneric Type
- Problem
- Solution
- Discussion
- See Also
- 6.3. Creating Custom Enumerators
- Problem
- Solution
- Discussion
- See Also
- 6.4. Implementing Iterator Logic
- Problem
- Solution
- Discussion
- See Also
- 6.5. Forcing an Iterator to Stop Iterating
- Problem
- Solution
- Discussion
- See Also
- 6.6. Dealing with Finally Blocks and Iterators
- Problem
- Solution
- Discussion
- See Also
- 6.7. Implementing Nested foreach Functionality in a Class
- Problem
- Solution
- Discussion
- See Also
- 6.8. Organizing Your Interface Implementations
- Problem
- Solution
- Discussion
- See Also
- 6.9. Generating Code That Is No Longer in Your Main Code Paths
- Problem
- Solution
- Discussion
- See Also
- 6.10. Adding Hooks to Generated Entities
- Problem
- Solution
- Discussion
- See Also
- 7. Exception Handling
- 7.0. Introduction
- 7.1. Knowing When to Catch and Rethrow Exceptions
- Problem
- Solution
- Discussion
- 7.2. Assuring Exceptions Are Not Lost When Using Finally Blocks
- Problem
- Solution
- Discussion
- See Also
- 7.3. Handling Exceptions Thrown from Methods Invoked via Reflection
- Problem
- Solution
- Discussion
- See Also
- 7.4. Preventing Unhandled Exceptions
- Problem
- Solution
- Discussion
- See Also
- 7.5. Getting Exception Information
- Problem
- Solution
- Discussion
- See Also
- 7.6. Getting to the Root of a Problem Quickly
- Problem
- Solution
- Discussion
- See Also
- 7.7. Creating a New Exception Type
- Problem
- Solution
- Discussion
- See Also
- 7.8. Obtaining a Stack Trace
- Problem
- Solution
- Discussion
- See Also
- 7.9. Breaking on a First-Chance Exception
- Problem
- Solution
- See Also
- 7.10. Handling Exceptions Thrown from an Asynchronous Delegate
- Problem
- Solution
- Discussion
- See Also
- 7.11. Giving Exceptions the Extra Info They Need with Exception.Data
- Problem
- Solution
- Discussion
- See Also
- 7.12. Dealing with Unhandled Exceptions in WinForms Applications
- Problem
- Solution
- Discussion
- See Also
- 7.13. Dealing with Unhandled Exceptions in Windows Presentation Foundation (WPF) Applications
- Problem
- Solution
- Discussion
- See Also
- 7.14. Analyzing Exceptions for Common Errors
- Problem
- Solution
- Discussion
- See Also
- 8. Diagnostics
- 8.0. Introduction
- 8.1. Providing Fine-Grained Control over Debugging/ Tracing Output
- Problem
- Solution
- Discussion
- See Also
- 8.2. Determining Whether a Process Has Stopped Responding
- Problem
- Solution
- Discussion
- See Also
- 8.3. Using Event Logs in Your Application
- Problem
- Solution
- Discussion
- See Also
- 8.4. Searching Event Log Entries
- Problem
- Solution
- Discussion
- See Also
- 8.5. Watching the Event Log for a Specific Entry
- Problem
- Solution
- Discussion
- See Also
- 8.6. Implementing a Simple Performance Counter
- Problem
- Solution
- Discussion
- See Also
- 8.7. Enabling and Disabling Complex Tracing Code
- Problem
- Solution
- Discussion
- See Also
- 8.8. Capturing Standard Output for a Process
- Problem
- Solution
- Discussion
- See Also
- 8.9. Creating Custom Debugging Displays for Your Classes
- Problem
- Solution
- Discussion
- See Also
- 9. Delegates, Events, and Lambda Expressions
- 9.0. Introduction
- 9.1. Controlling When and If a Delegate Fires Within a Multicast Delegate
- Problem
- Solution
- Discussion
- See Also
- 9.2. Obtaining Return Values from Each Delegate in a Multicast Delegate
- Problem
- Solution
- Discussion
- See Also
- 9.3. Handling Exceptions Individually for Each Delegate in a Multicast Delegate
- Problem
- Solution
- Discussion
- See Also
- 9.4. Converting Delegate Invocation from Synchronous to Asynchronous
- Problem
- Solution
- Discussion
- See Also
- 9.5. An Advanced Interface Search Mechanism
- Problem
- Solution
- Discussion
- See Also
- 9.6. Observing Additions and Modifications to Dictionaries
- Problem
- Solution
- Discussion
- See Also
- 9.7. Using Lambda Expressions
- Problem
- Solution
- Discussion
- See Also
- 9.8. Set Up Event Handlers Without the Mess
- Problem
- Solution
- Discussion
- See Also
- 9.9. Using Different Parameter Modifiers in Lambda Expressions
- Problem
- Solution
- Discussion
- See Also
- 9.10. Using Closures in C#
- Problem
- Solution
- Discussion
- See Also
- 9.11. Performing Multiple Operations on a List Using Functors
- Problem
- Solution
- Discussion
- See Also
- 10. Regular Expressions
- 10.0. Introduction
- 10.1. Enumerating Matches
- Problem
- Solution
- Discussion
- See Also
- 10.2. Extracting Groups from a MatchCollection
- Problem
- Solution
- Discussion
- See Also
- 10.3. Verifying the Syntax of a Regular Expression
- Problem
- Solution
- Discussion
- 10.4. Quickly Finding Only the Last Match in a String
- Problem
- Solution
- Discussion
- See Also
- 10.5. Augmenting the Basic String Replacement Function
- Problem
- Solution
- Discussion
- See Also
- 10.6. Implementing a Better Tokenizer
- Problem
- Solution
- Discussion
- See Also
- 10.7. Counting Lines of Text
- Problem
- Solution
- Discussion
- See Also
- 10.8. Returning the Entire Line in Which a Match Is Found
- Problem
- Solution
- Discussion
- See Also
- 10.9. Finding a Particular Occurrence of a Match
- Problem
- Solution
- Discussion
- See Also
- 10.10. Using Common Patterns
- Problem
- Solution
- Discussion
- See Also
- 11. Data Structures and Algorithms
- 11.0. Introduction
- 11.1. Creating a Hash Code for a Data Type
- Problem
- Solution
- The simple hash
- The folding hash
- The contained object cache
- The CryptoHash method
- The CryptoHash method using a nonstring
- The shift and add hash
- The calculated hash
- The string-concatenation hash
- Discussion
- See Also
- 11.2. Creating a Priority Queue
- Problem
- Solution
- Discussion
- See Also
- 11.3. Creating a One-to-Many Map (MultiMap)
- Problem
- Solution
- Discussion
- See Also
- 11.4. Creating a Binary Search Tree
- Problem
- Solution
- Discussion
- See Also
- 11.5. Creating an n-ary Tree
- Problem
- Solution
- Discussion
- See Also
- 11.6. Using a HashSet Object
- Problem
- Solution
- Discussion
- See Also
- 12. Filesystem I/O
- 12.0. Introduction
- 12.1. Manipulating File Attributes
- Problem
- Solution
- Discussion
- See Also
- 12.2. Renaming a File
- Problem
- Solution
- Discussion
- See Also
- 12.3. Outputting a Platform-Independent EOL Character
- Problem
- Solution
- Discussion
- See Also
- 12.4. Manipulating Directory Attributes
- Problem
- Solution
- Discussion
- See Also
- 12.5. Renaming a Directory
- Problem
- Solution
- Discussion
- See Also
- 12.6. Searching for Directories or Files Using Wildcards
- Problem
- Solution
- Discussion
- See Also
- 12.7. Obtaining the Directory Tree
- Problem
- Solution
- Discussion
- See Also
- 12.8. Parsing a Path
- Problem
- Solution
- Discussion
- See Also
- 12.9. Parsing Paths in Environment Variables
- Problem
- Solution
- Discussion
- See Also
- 12.10. Launching and Interacting with Console Utilities
- Problem
- Solution
- Discussion
- See Also
- 12.11. Locking Subsections of a File
- Problem
- Solution
- Discussion
- See Also
- 12.12. Waiting for an Action to Occur in the Filesystem
- Problem
- Solution
- Discussion
- See Also
- 12.13. Comparing Version Information of Two Executable Modules
- Problem
- Solution
- Discussion
- See Also
- 12.14. Querying Information for All Drives on a System
- Problem
- Solution
- Discussion
- See Also
- 12.15. Compressing and Decompressing Your Files
- Problem
- Solution
- Discussion
- See Also
- 13. Reflection
- 13.0. Introduction
- 13.1. Listing Referenced Assemblies
- Problem
- Solution
- Discussion
- See Also
- 13.2. Listing Exported Types
- Problem
- Solution
- Discussion
- See Also
- 13.3. Finding Overridden Methods
- Problem
- Solution
- Discussion
- See Also
- 13.4. Finding Members in an Assembly
- Problem
- Solution
- Discussion
- See Also
- 13.5. Determining and Obtaining Nested Types Within an Assembly
- Problem
- Solution
- Discussion
- See Also
- 13.6. Displaying the Inheritance Hierarchy for a Type
- Problem
- Solution
- Discussion
- See Also
- 13.7. Finding the Subclasses of a Type
- Problem
- Solution
- Discussion
- See Also
- 13.8. Finding All Serializable Types Within an Assembly
- Problem
- Solution
- Discussion
- See Also
- 13.9. Dynamically Invoking Members
- Problem
- Solution
- Discussion
- See Also
- 13.10. Determining If a Type or Method Is Generic
- Problem
- Solution
- Discussion
- See Also
- 13.11. Accessing Local Variable Information
- Problem
- Solution
- Discussion
- See Also
- 13.12. Creating a Generic Type
- Problem
- Solution
- Discussion
- See Also
- 14. Web
- 14.0. Introduction
- 14.1. Converting an IP Address to a Hostname
- Problem
- Solution
- Discussion
- See Also
- 14.2. Converting a Hostname to an IP Address
- Problem
- Solution
- Discussion
- See Also
- 14.3. Parsing a URI
- Problem
- Solution
- Discussion
- See Also
- 14.4. Handling Web Server Errors
- Problem
- Solution
- Discussion
- See Also
- 14.5. Communicating with a Web Server
- Problem
- Solution
- Discussion
- See Also
- 14.6. Going Through a Proxy
- Problem
- Solution
- Discussion
- See Also
- 14.7. Obtaining the HTML from a URL
- Problem
- Solution
- Discussion
- See Also
- 14.8. Using the Web Browser Control
- Problem
- Solution
- Discussion
- See Also
- 14.9. Tying Database Tables to the Cache
- Problem
- Solution
- Discussion
- See Also
- 14.10. Prebuilding an ASP.NET Web SiteProgrammatically
- Problem
- Solution
- Discussion
- See Also
- 14.11. Escaping and Unescaping Data for the Web
- Problem
- Solution
- Discussion
- See Also
- 14.12. Using the UriBuilder Class
- Problem
- Solution
- Discussion
- See Also
- 14.13. Inspect and Change Your Web Application Configuration
- Problem
- Solution
- Discussion
- See Also
- 14.14. Using Cached Results When Working with HTTP for Faster Performance
- Problem
- Solution
- Discussion
- See Also
- 14.15. Checking Out a Web Server's Custom Error Pages
- Problem
- Solution
- Discussion
- See Also
- 15. xml
- 15.0. Introduction
- 15.1. Reading and Accessing XML Data in Document Order
- Problem
- Solution
- Discussion
- See Also
- 15.2. Reading XML on the Web
- Problem
- Solution
- Discussion
- See Also
- 15.3. Querying the Contents of an XML Document
- Problem
- Solution
- Discussion
- See Also
- 15.4. Validating XML
- Problem
- Solution
- Discussion
- See Also
- 15.5. Creating an XML Document Programmatically
- Problem
- Solution
- Discussion
- See Also
- 15.6. Detecting Changes to an XML Document
- Problem
- Solution
- Discussion
- See Also
- 15.7. Handling Invalid Characters in an XML String
- Problem
- Solution
- Discussion
- See Also
- 15.8. Transforming XML
- Problem
- Solution
- Discussion
- See Also
- 15.9. Tearing Apart an XML Document
- Problem
- Solution
- Discussion
- See Also
- 15.10. Putting Together an XML Document
- Problem
- Solution
- Discussion
- See Also
- 15.11. Validating Modified XML Documents Without Reloading
- Problem
- Solution
- Discussion
- See Also
- 15.12. Extending Transformations
- Problem
- Solution
- Discussion
- See Also
- 15.13. Getting Your Schemas in Bulk from Existing XML Files
- Problem
- Solution
- Discussion
- See Also
- 15.14. Passing Parameters to Transformations
- Problem
- Solution
- Discussion
- See Also
- 16. Networking
- 16.0. Introduction
- 16.1. Writing a TCP Server
- Problem
- Solution
- Discussion
- See Also
- 16.2. Writing a TCP Client
- Problem
- Solution
- Discussion
- See Also
- 16.3. Simulating Form Execution
- Problem
- Solution
- Discussion
- See Also
- 16.4. Transferring Data via HTTP
- Problem
- Solution
- Discussion
- See Also
- 16.5. Using Named Pipes to Communicate
- Problem
- Solution
- Discussion
- See Also
- 16.6. Pinging Programmatically
- Problem
- Solution
- Discussion
- See Also
- 16.7. Send SMTP Mail Using the SMTP Service
- Problem
- Solution
- Discussion
- See Also
- 16.8. Use Sockets to Scan the Ports on a Machine
- Problem
- Solution
- Discussion
- See Also
- 16.9. Use the Current Internet Connection Settings
- Problem
- Solution
- Discussion
- See Also
- 16.10. Transferring Files Using FTP
- Problem
- Solution
- Discussion
- See Also
- 17. Security
- 17.0. Introduction
- 17.1. Controlling Access to Types in a Local Assembly
- Problem
- Solution
- Discussion
- See Also
- 17.2. Encrypting/Decrypting a String
- Problem
- Solution
- Discussion
- See Also
- 17.3. Encrypting and Decrypting a File
- Problem
- Solution
- Discussion
- See Also
- 17.4. Cleaning Up Cryptography Information
- Problem
- Solution
- Discussion
- See Also
- 17.5. Verifying That a String Remains Uncorrupted Following Transmission
- Problem
- Solution
- Discussion
- See Also
- 17.6. Storing Data Securely
- Problem
- Solution
- Discussion
- See Also
- 17.7. Making a Security Assert Safe
- Problem
- Solution
- Discussion
- See Also
- 17.8. Verifying That an Assembly Has Been Granted Specific Permissions
- Problem
- Solution
- Discussion
- See Also
- 17.9. Minimizing the Attack Surface of an Assembly
- Problem
- Solution
- Discussion
- See Also
- 17.10. Obtaining Security/Audit Information
- Problem
- Solution
- Discussion
- See Also
- 17.11. Granting/Revoking Access to a File or Registry Key
- Problem
- Solution
- Discussion
- See Also
- 17.12. Protecting String Data with Secure Strings
- Problem
- Solution
- Discussion
- See Also
- 17.13. Securing Stream Data
- Problem
- Solution
- Discussion
- See Also
- 17.14. Encrypting web.config Information
- Problem
- Solution
- Discussion
- See Also
- 17.15. Obtaining the Full Reason a SecurityException Was Thrown
- Problem
- Solution
- Discussion
- See Also
- 17.16. Achieving Secure Unicode Encoding
- Problem
- Solution
- Discussion
- See Also
- 17.17. Obtaining a Safer File Handle
- Problem
- Solution
- Discussion
- See Also
- 18. Threading and Synchronization
- 18.0. Introduction
- 18.1. Creating Per-Thread Static Fields
- Problem
- Solution
- Discussion
- See Also
- 18.2. Providing Thread-Safe Access to Class Members
- Problem
- Solution
- Discussion
- See Also
- 18.3. Preventing Silent Thread Termination
- Problem
- Solution
- Discussion
- See Also
- 18.4. Being Notified of the Completion of an Asynchronous Delegate
- Problem
- Solution
- Discussion
- See Also
- 18.5. Storing Thread-Specific Data Privately
- Problem
- Solution
- Discussion
- See Also
- 18.6. Granting Multiple Access to Resources with a Semaphore
- Problem
- Solution
- Discussion
- See Also
- 18.7. Synchronizing Multiple Processes with the Mutex
- Problem
- Solution
- Discussion
- See Also
- 18.8. Using Events to Make Threads Cooperate
- Problem
- Solution
- Discussion
- See Also
- 18.9. Get the Naming Rights for Your Events
- Problem
- Solution
- Discussion
- See Also
- 18.10. Performing Atomic Operations Among Threads
- Problem
- Solution
- Discussion
- See Also
- 18.11. Optimizing Read-Mostly Access
- Problem
- Solution
- Discussion
- See Also
- 19. Toolbox
- 19.0. Introduction
- 19.1. Dealing with Operating System Shutdown, Power Management, or User Session Changes
- Problem
- Solution
- Discussion
- See Also
- 19.2. Controlling a Service
- Problem
- Solution
- Discussion
- See Also
- 19.3. List What Processes an Assembly Is Loaded In
- Problem
- Solution
- Discussion
- See Also
- 19.4. Using Message Queues on a Local Workstation
- Problem
- Solution
- Discussion
- See Also
- 19.5. Finding the Path to the Current Framework Version
- Problem
- Solution
- Discussion
- See Also
- 19.6. Determining the Versions of an Assembly That Are Registered in the Global Assembly Cache (GAC)
- Problem
- Solution
- Discussion
- See Also
- 19.7. Capturing Output from the Standard Output Stream
- Problem
- Solution
- Discussion
- See Also
- 19.8. Running Code in Its Own AppDomain
- Problem
- Solution
- Discussion
- See Also
- 19.9. Determining the Operating System and Service Pack Version of the Current Operating System
- Problem
- Solution
- Discussion
- See Also
- 20. Numbers and Enumerations
- 20.0. Introduction
- 20.1. Converting Between Degrees and Radians
- Problem
- Solution
- Discussion
- 20.2. Using the Bitwise Complement Operator with Various Data Types
- Problem
- Solution
- Discussion
- 20.3. Converting a Number in Another Base to Base10
- Problem
- Solution
- Discussion
- See Also
- 20.4. Determining Whether a String Is a Valid Number
- Problem
- Solution
- Discussion
- See Also
- 20.5. Rounding a Floating-Point Value
- Problem
- Solution
- Discussion
- See Also
- 20.6. Choosing a Rounding Algorithm
- Problem
- Solution
- Discussion
- See Also
- 20.7. Converting Between Temperature Scales
- Problem
- Solution
- Discussion
- 20.8. Safely Performing a Narrowing Numeric Cast
- Problem
- Solution
- Discussion
- See Also
- 20.9. Displaying an Enumeration Value as a String
- Problem
- Solution
- Discussion
- See Also
- 20.10. Converting Plain Text to an Equivalent Enumeration Value
- Problem
- Solution
- Discussion
- See Also
- 20.11. Testing for a Valid Enumeration Value
- Problem
- Solution
- Discussion
- See Also
- 20.12. Testing for a Valid Enumeration of Flags
- Problem
- Solution
- Discussion
- See Also
- 20.13. Using Enumerated Members in a Bit Mask
- Problem
- Solution
- Discussion
- 20.14. Determining Whether One or More Enumeration Flags Are Set
- Problem
- Solution
- Discussion
- 20.15. Determining the Integral Part of a Decimal or Double
- Problem
- Solution
- Discussion
- See Also
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly