Show / Hide Table of Contents

Interface IMemoizer

Interface for function memoizers.

Namespace: System.Memory
Assembly: Nuqleon.Memory.dll
Syntax
public interface IMemoizer

Methods

Memoize<T, TResult>(Func<T, TResult>, MemoizationOptions, IEqualityComparer<T>)

Memoizes the specified function.

Declaration
IMemoizedDelegate<Func<T, TResult>> Memoize<T, TResult>(Func<T, TResult> function, MemoizationOptions options, IEqualityComparer<T> comparer = null)
Parameters
Type Name Description
System.Func<T, TResult> function

The function to memoize.

MemoizationOptions options

Flags to influence the memoization behavior.

System.Collections.Generic.IEqualityComparer<T> comparer

Comparer to compare the function argument during lookup in the memoization cache.

Returns
Type Description
IMemoizedDelegate<System.Func<T, TResult>>

A memoized delegate containing the memoized function and providing access to the memoization cache.

Type Parameters
Name Description
T

Type of the function argument.

TResult

Type of the function result.

Extension Methods

FunctionMemoizationExtensions.Memoize<T1, T2, TResult>(IMemoizer, Func<T1, T2, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, TResult>(IMemoizer, Func<T1, T2, T3, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, TResult>(IMemoizer, Func<T1, T2, T3, T4, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T1, T2, TResult>(IMemoizer, Func<T1, T2, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, TResult>(IMemoizer, Func<T1, T2, T3, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, TResult>(IMemoizer, Func<T1, T2, T3, T4, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>, IEqualityComparer<T12>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>, IEqualityComparer<T12>, IEqualityComparer<T13>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>, IEqualityComparer<T12>, IEqualityComparer<T13>, IEqualityComparer<T14>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>, IEqualityComparer<T12>, IEqualityComparer<T13>, IEqualityComparer<T14>, IEqualityComparer<T15>)
FunctionMemoizationExtensions.Memoize<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>(IMemoizer, Func<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, TResult>, MemoizationOptions, IEqualityComparer<T1>, IEqualityComparer<T2>, IEqualityComparer<T3>, IEqualityComparer<T4>, IEqualityComparer<T5>, IEqualityComparer<T6>, IEqualityComparer<T7>, IEqualityComparer<T8>, IEqualityComparer<T9>, IEqualityComparer<T10>, IEqualityComparer<T11>, IEqualityComparer<T12>, IEqualityComparer<T13>, IEqualityComparer<T14>, IEqualityComparer<T15>, IEqualityComparer<T16>)
FunctionMemoizationExtensions.Memoize<TResult>(IMemoizer, Func<TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<T, TResult>(IMemoizer, Func<T, TResult>, MemoizationOptions)
FunctionMemoizationExtensions.Memoize<TDelegate>(IMemoizer, TDelegate, MemoizationOptions)
In This Article
Back to top Generated by DocFX