using System.Collections; namespace Templates.Observer { public delegate void Notification(SubjectState ss); public class Subject { // Subject instance variable private event Notification observerNotifier; public void AddNotifier(Notification n){ observerNotifier += n; } public void RemoveNotifier(Notification n){ observerNotifier -= n; } public void Notify(){ observerNotifier(new SubjectState()); } } public class SubjectState { // Selected state of the subject } }