public static void Exmaple_WeakReference() { var cache = new WeakCaehe <string, byte[]>(); var data = new byte[100]; cache.Add("d", data); byte[] fromCache; Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache)); Console.WriteLine("Same ref?" + object.ReferenceEquals(data, fromCache)); fromCache = null; GC.Collect(); Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache)); Console.WriteLine("Same ref?" + object.ReferenceEquals(data, fromCache)); fromCache = null; data = null; GC.Collect(); Console.WriteLine("Retrieval:" + cache.TryGetValue("d", out fromCache)); Console.WriteLine("NULL? " + (fromCache == null)); }
static void Main(string[] args) { WeakCaehe <string, byte[]> .Exmaple_WeakReference(); Console.ReadLine(); }