public virtual void AddListener(SomeListener listener) { if (null == listener) { return; } listeners.Add(new HashedWeakReference <SomeListener>(listener)); }
public void RemoveListener(SomeListener listener) { foreach (HashedWeakReference <SomeListener> reference in listeners) { if (reference.Reference.TryGetTarget(out SomeListener iterListener) && iterListener == listener) { listeners.Remove(reference); break; } } }
public virtual void RemoveListener(SomeListener listener) { }