using System.Runtime.Caching;
public static void Main()
var cache2 = new CacheTest();
var cache3 = new CacheTest();
var cache4 = new CacheTest();
System.Runtime.Caching.MemoryCache cache = System.Runtime.Caching.MemoryCache.Default;
int cache1_1 = cache.AddOrGetExisting("cache1", 1);
int cache1_2 = cache.AddOrGetExisting("cache1", 2);
int cache2_1 = cache.AddOrGetExisting("cache2", i => cache2.Increment());
int cache2_2 = cache.AddOrGetExisting("cache2", i => cache2.Increment());
int cache3_1 = cache.AddOrGetExisting("cache3", i => cache3.Increment(), new CacheItemPolicy());
int cache3_2 = cache.AddOrGetExisting("cache3", i => cache3.Increment(), new CacheItemPolicy());
int cache4_1 = cache.AddOrGetExisting("cache4", i => cache4.Increment(), new DateTimeOffset(new DateTime(2100, 01, 01)));
int cache4_2 = cache.AddOrGetExisting("cache4", i => cache4.Increment(), new DateTimeOffset(new DateTime(2100, 01, 01)));
Console.WriteLine(cache1_1);
Console.WriteLine(cache1_2);
Console.WriteLine(cache2_1);
Console.WriteLine(cache2_2);
Console.WriteLine(cache3_1);
Console.WriteLine(cache3_2);
Console.WriteLine(cache4_1);
Console.WriteLine(cache4_2);