public override bool TryGetValue(K key, out V value) { _accessCounter++; WeakReference <V> wv = _dict.TryGetValue(key, null); if (wv != null) { value = wv.Target(); if (value != null || wv == WeakNull) { return(true); } else { _dict.Remove(key); } } value = default(V); return(false); }