public object this[object key] { get { return(WeakRefWrapper.Unwrap(innerHashtable[WeakRefWrapper.Wrap(key)])); } set { Scavenge(); innerHashtable[WeakRefWrapper.Wrap(key)] = WeakRefWrapper.Wrap(value); } }
public bool MoveNext() { // Skip any garbage-collected key/value pairs while (true) { currentKey = null; currentValue = null; if (!innerEnumerator.MoveNext()) { return(false); } currentKey = WeakRefWrapper.Unwrap(innerEnumerator.Key); currentValue = WeakRefWrapper.Unwrap(innerEnumerator.Value); if (currentKey != null && currentValue != null) { break; } } return(true); }