public override V Put(K key, V value)
 {
     PruneDeadReferences();
     WeakValueHashMap.WeakValue <V> valueRef = new WeakValueHashMap.WeakValue <V>(this,
                                                                                  key, value, referenceQueue);
     return(GetReferenceValue(references.Put(key, valueRef)));
 }
 private V GetReferenceValue(WeakValueHashMap.WeakValue <V> valueRef)
 {
     return(valueRef == null ? null : valueRef.Get());
 }