Table of Contents

Namespace ICSharpCode.Decompiler.Util

Classes

BitSet

Improved version of BitArray

BusyManager

This class is used to prevent stack overflows by representing a 'busy' flag that prevents reentrance when another call is running. However, using a simple 'bool busy' is not thread-safe, so we use a thread-static BusyManager.

CSharpPrimitiveCast

Static helper method for converting between primitive types.

CacheManager

Allows caching values for a specific compilation. A CacheManager consists of a for shared instances (shared among all threads working with that resolve context).

CallbackOnDispose

Invokes an action when it is disposed.

EmptyList<T>
Empty<T>
KeyComparer
KeyComparer<TElement, TKey>
LazyInit
MultiDictionary<TKey, TValue>

A dictionary that allows multiple pairs with the same key.

NewLine

Defines unicode new lines according to Unicode Technical Report #13 http://www.unicode.org/standard/reports/tr13/tr13-5.html

Platform

Platform-specific code.

ProjectedList<TInput, TOutput>
ProjectedList<TContext, TInput, TOutput>
ReferenceComparer
ResXResourceWriter
ResourceSerializedObject
ResourcesFile

.resources file.

TreeTraversal

Static helper methods for traversing trees.

UnionFind<T>

Union-Find data structure.

Win32ResourceData
Win32ResourceDirectory
Win32ResourceName
Win32Resources

Represents win32 resources

Structs

BusyManager.BusyLock
Interval

Represents a half-closed interval. The start position is inclusive; but the end position is exclusive.

LongInterval

Represents a half-closed interval. The start position is inclusive; but the end position is exclusive.

LongSet

An immutable set of longs, that is implemented as a list of intervals.

Unit

Enums

UnicodeNewline