public void UsageCount() { var observers = new ObserverSet <DummyObserver>(); var dummyA = new DummyObserver(); var dummyB = new DummyObserver(); observers.Add(dummyA); observers.Use(d => d.UsedCount++); Assert.AreEqual(1, dummyA.UsedCount); observers.Add(dummyB); observers.Use(d => d.UsedCount++); Assert.AreEqual(2, dummyA.UsedCount); Assert.AreEqual(1, dummyB.UsedCount); observers.Remove(dummyA); observers.Use(d => d.UsedCount++); Assert.AreEqual(2, dummyA.UsedCount); Assert.AreEqual(2, dummyB.UsedCount); }
/// <summary> /// Removes a subsystem observer. /// </summary> /// <param name="observer">The observer to remove.</param> /// <returns>The observer was successfully removed.</returns> /// <remarks>The observer will be immediately receive registration callbacks if the subsystem is currently active.</remarks> public static bool Unregister(IObserver <T> observer) => observers.Remove(observer);