Esempio n. 1
0
        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);
        }
Esempio n. 2
0
 /// <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);