Enhanced C#
Language of your choice: library documentation
Classes | Enumerations
Loyc.Utilities Namespace Reference

Contains general-purpose classes that are not considered important enough to go directly into the Loyc namespace. Most of the classes in this namespace are defined in Loyc.Utilities.dll. More...

Classes

struct  BloomFilterM64K2
 A bloom filter for very small sets. More...
 
class  Co
 A structure that helps you to write coroutines, or to avoid the performance penalty of nested iterators. More...
 
class  GoAliasAttribute
 This attribute is applied to a method of an interface to specify alternate names that a method can have in T when you use GoInterface <Interface, T> to produce a wrapper. More...
 
class  GoDecoratorFieldAttribute
 This attribute marks a field in an abstract class as pointing to a wrapped object to which GoInterface should forward calls. It is used when you want GoInterface to "complete" a decorator pattern for you. More...
 
class  GoInterface
 Mainly for internal use by the other GoInterface classes. More...
 
interface  IGoInterfaceWrapper
 All GoInterface wrappers implement this interface. More...
 
class  SimpleTimer
 A fast, simple timer class with a more convenient interface than System.Diagnostics.Stopwatch. Its resolution is typically 10-16 ms on desktop Windows systems. More...
 
class  Statistic
 A lightweight class to help you compute the minimum, maximum, average and standard deviation of a set of values. Call Clear(), then Add(each value); you can compute the average and standard deviation at any time by calling Avg() and StdDeviation(). More...
 
class  TagsInWList
 An implementation of ITags designed for AstNode. More...
 
class  UG
 Contains global functions of Loyc.Utilities that don't belong in any specific class. More...
 
class  UGTests
 

Enumerations

enum  CastOptions {
  CastOptions.As = 1, CastOptions.AllowUnmatchedMethods = 2, CastOptions.AllowRefMismatch = 4,
  CastOptions.AllowMissingParams = 8, CastOptions.NoUnwrap = 16
}
 Options you can pass to GoInterface.From() More...
 

Detailed Description

Contains general-purpose classes that are not considered important enough to go directly into the Loyc namespace. Most of the classes in this namespace are defined in Loyc.Utilities.dll.

Enumeration Type Documentation

◆ CastOptions

Options you can pass to GoInterface.From()

Enumerator
As 

If there is a mismatch, return null instead of throwing InvalidCastException

AllowUnmatchedMethods 

Allow the cast even if NumberOfUnmatchedMethods > 0

AllowRefMismatch 

Allow the cast even if NumberOfMethodsWithRefMismatch > 0

AllowMissingParams 

Allow the cast even if NumberOfMethodsMissingParameters > 0

NoUnwrap 

If the object to be wrapped is already wrapped, GoInterface<Interface> will normally unwrap it before wrapping the original object in another interface. Pass this flag to GoInterface<Interface>.From() if you would like to make a wrapper around another wrapper.

Note 1: This flag only works in GoInterfaceFactory<Interface>, not GoInterfaceFactory<Interface,T>. Note 2: Unwrapping occurs recursively until an object is reached that does not implement IGoInterfaceWrapper.