static void Main(string[] args)
        {
            ConcreateSubject s = new ConcreateSubject();

            //Attach state to Subject
            s.Attach(new ConcreteObserver(s, "X"));
            s.Attach(new ConcreteObserver(s, "Y"));
            s.Attach(new ConcreteObserver(s, "Z"));

            // Change subject and notify observers
            s.SubjectState = "ABC";
            s.Notify();

            //Wait for user
            Console.ReadKey();
        }
 //Constructer
 public ConcreteObserver(ConcreateSubject subject, string name)
 {
     _name    = name;
     _subject = subject;
 }