Get this bad boy to compile standalone
[mono.git] / mcs / tests / test-57.cs
index fead8b0ad2fec694fbdcbdc1dd1d421fe11a32d2..2d23bdedb13226fd85ae90f3576e1ad82e033672 100644 (file)
@@ -4,17 +4,26 @@ public delegate void EventHandler (int i, int j);
 
 public class Button {
 
-       public event EventHandler Click;
+       private EventHandler click;
+
+       public event EventHandler Click {
+               add    { click += value; }
+               remove { click -= value; }
+       }
 
         public void OnClick (int i, int j)
        {
-               if (Click != null)
-                       Click (i, j);
+               if (click == null) {
+                       Console.WriteLine ("Nothing to click!");
+                       return;
+               }
+
+               click (i, j);
        }
 
        public void Reset ()
        {
-               Click = null;
+               click = null;
        }
 }
 
@@ -25,6 +34,7 @@ public class Blah {
        public void Connect ()
        {
                Button1.Click += new EventHandler (Button1_Click);
+               Button1.Click += new EventHandler (Foo_Click);
        }
 
        public void Button1_Click (int i, int j)
@@ -33,10 +43,16 @@ public class Blah {
                Console.WriteLine ("Answer : " + (i+j));
        }
 
+       public void Foo_Click (int i, int j)
+       {
+               Console.WriteLine ("Foo was clicked !");
+               Console.WriteLine ("Answer : " + (i+j));
+       }
+
        public void Disconnect ()
        {
-               Console.WriteLine ("Disconnecting ...");
-               //    Button1.Click -= new EventHandler (Button1_Click);
+               Console.WriteLine ("Disconnecting Button1's handler ...");
+               Button1.Click -= new EventHandler (Button1_Click);
        }
 
        public static int Main ()
@@ -47,7 +63,10 @@ public class Blah {
 
                b.Button1.OnClick (2, 3);
 
-               b.OnClick ();
+               b.Disconnect ();
+
+               Console.WriteLine ("Now calling OnClick again");
+               b.Button1.OnClick (3, 7);
 
                Console.WriteLine ("Events test passes");
                return 0;