FlyweightCache<TKey, TValue> Class
- Namespace
- Kampute.HttpClient.Utilities
- Assembly
- Kampute.HttpClient.dll
Definition
Provides a thread-safe cache for efficiently retrieving and lazily adding key-value pairs.
public sealed class FlyweightCache<TKey, TValue>- Inheritance
- object
- FlyweightCache<TKey, TValue>
Type Parameters
TKey- The type of keys used in the cache.
TValue- The type of values stored in the cache.
Remarks
This cache utilizes T:System.Collections.Concurrent.ConcurrentDictionary`2 to ensure thread-safe access while optimizing for high read scenarios and infrequent writes. Values are created on demand using a specified factory method when they are accessed and not already present, allowing for efficient memory usage and avoiding pre-population overhead.
Constructors
FlyweightCache<TKey, TValue>(Func<TKey, TValue>)
Initializes a new instance of the FlyweightCache<TKey, TValue> class using a specified value factory.
public FlyweightCache<TKey, TValue>(Func<TKey, TValue> valueFactory)Parameters
valueFactoryFunc<TKey, TValue>- A delegate that defines the method to create values if the key does not exist in the cache.
Exceptions
- ArgumentNullException
- Thrown if the provided
valueFactoryisnull.
FlyweightCache<TKey, TValue>(Func<TKey, TValue>, IEqualityComparer<TKey>)
Initializes a new instance of the FlyweightCache<TKey, TValue> class using a specified value factory and key comparer.
public FlyweightCache<TKey, TValue>(Func<TKey, TValue> valueFactory, IEqualityComparer<TKey> keyComparer)Parameters
valueFactoryFunc<TKey, TValue>- A delegate that defines the method to create values if the key does not exist in the cache.
keyComparerIEqualityComparer<TKey>- The equality comparison implementation to use when comparing keys.
Exceptions
- ArgumentNullException
- Thrown if the provided
valueFactoryorkeyComparerisnull.
Properties
Count
Gets the number of key/value pairs contained in the cache.
public int Count { get; }Property Value
- int
- The number of key/value pairs currently stored in the cache.
Methods
Clear()
Clears the cache.
public void Clear()Contains(TKey)
Checks if the cache contains a value associated with the specified key.
public bool Contains(TKey key)Parameters
keyTKey- The key to check in the cache.
Returns
Get(TKey)
Retrieves a value for the specified key.
public TValue Get(TKey key)Parameters
keyTKey- The key whose value to retrieve.
Returns
- TValue
- The value associated with the specified key.
