In VB.NET I can do
private sub button_click(sender, e) handles Button1.Click, Button2.Click etc... do something... end sub
If you want to keep it maintainable, I would go with something like this:
//btnArray can also be populated by traversing relevant Controls collection(s)
Button[] btnArray = new Button[] {button1, button2};
foreach(Button btn in btnArray) {
btn.Click += button_Click;
}
Any refactoring to this code is done via a single point of maintenance. For example: