using System;
public class EventExample
{
public event Handler SomeEvent;
public static void Main()
{
var example = new EventExample();
example.SomeEvent += Handler1;
Console.WriteLine("-- One Handler --");
example.SomeEvent();
example.SomeEvent += Handler2;
Console.WriteLine("-- Two Handlers --");
example.SomeEvent();
example.SomeEvent = Handler3;
Console.WriteLine("-- One Handler? --");
example.SomeEvent();
}
public static void Handler1()
{
Console.WriteLine("In 1");
}
public static void Handler2()
{
Console.WriteLine("In 2");
}
public static void Handler3()
{
Console.WriteLine("In 3");
}
}
public delegate void Handler();
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIEV2ZW50RXhhbXBsZQp7CglwdWJsaWMgZXZlbnQgSGFuZGxlciBTb21lRXZlbnQ7CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgZXhhbXBsZSA9IG5ldyBFdmVudEV4YW1wbGUoKTsKCQlleGFtcGxlLlNvbWVFdmVudCArPSBIYW5kbGVyMTsKCQlDb25zb2xlLldyaXRlTGluZSgiLS0gT25lIEhhbmRsZXIgLS0iKTsKCQlleGFtcGxlLlNvbWVFdmVudCgpOwoJCQoJCWV4YW1wbGUuU29tZUV2ZW50ICs9IEhhbmRsZXIyOwoJCUNvbnNvbGUuV3JpdGVMaW5lKCItLSBUd28gSGFuZGxlcnMgLS0iKTsKCQlleGFtcGxlLlNvbWVFdmVudCgpOwoJCQoJCWV4YW1wbGUuU29tZUV2ZW50ID0gSGFuZGxlcjM7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIi0tIE9uZSBIYW5kbGVyPyAtLSIpOwoJCWV4YW1wbGUuU29tZUV2ZW50KCk7Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBIYW5kbGVyMSgpCgl7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIkluIDEiKTsKCX0KCQoJcHVibGljIHN0YXRpYyB2b2lkIEhhbmRsZXIyKCkKCXsKCQlDb25zb2xlLldyaXRlTGluZSgiSW4gMiIpOwoJfQoJCglwdWJsaWMgc3RhdGljIHZvaWQgSGFuZGxlcjMoKQoJewoJCUNvbnNvbGUuV3JpdGVMaW5lKCJJbiAzIik7Cgl9Cn0KCnB1YmxpYyBkZWxlZ2F0ZSB2b2lkIEhhbmRsZXIoKTs=