using System;
class A
{
private EventHandler click;
public event EventHandler Click
{
add { click += value; }
}
public void PerformClick()
{
click(this, new EventArgs());
}
}
class B
{
public void foo()
{
Console.WriteLine("b.foo()");
}
}
public class Test
{
public static void Main()
{
A a = new A();
B b = new B();
a.Click += new EventHandler((se, ar) => { b.foo(); });
a.PerformClick();
}
}
dXNpbmcgU3lzdGVtOwpjbGFzcyBBCnsKCXByaXZhdGUgRXZlbnRIYW5kbGVyIGNsaWNrOwoJcHVibGljIGV2ZW50IEV2ZW50SGFuZGxlciBDbGljawoJewoJCWFkZCB7IGNsaWNrICs9IHZhbHVlOyB9CgkJcmVtb3ZlIHsgY2xpY2sgLT0gdmFsdWU7IH0KCX0KCXB1YmxpYyB2b2lkIFBlcmZvcm1DbGljaygpCgl7CgkJY2xpY2sodGhpcywgbmV3IEV2ZW50QXJncygpKTsKCX0KfQpjbGFzcyBCCnsKCXB1YmxpYyB2b2lkIGZvbygpCgl7CgkJQ29uc29sZS5Xcml0ZUxpbmUoImIuZm9vKCkiKTsKCX0KfQpwdWJsaWMgY2xhc3MgVGVzdAp7CglwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCgl7CgkJQSBhID0gbmV3IEEoKTsKCQlCIGIgPSBuZXcgQigpOwoJCWEuQ2xpY2sgKz0gbmV3IEV2ZW50SGFuZGxlcigoc2UsIGFyKSA9PiB7IGIuZm9vKCk7IH0pOwoJCWEuUGVyZm9ybUNsaWNrKCk7Cgl9Cn0=