That means that any other delegate that was hooked up to Button. Click is now unhooked. Click needs to be public so that other objects can access it, and there's no way to prevent the above scenario. These situations are particularly bad because in many cases, there is only one delegate hooked up, and the problem isn't visible as a bug. Later on, another delegate is hooked up, and things start breaking.
Events add a layer of protection on top of the delegate model.
The ClickHandler delegate defines the signature of the event using the standard pattern for event delegates. It has a name that ends in handler, and it has two parameters. The first parameter is the object that sent the object, and the second parameter is used to pass the information that goes along with the event. The declaration of the Click event does two things. First, it declares a delegate member variable named Click that is used from within the class.