У меня есть метод, который был объявлен так:
public ButtonObject CreateStandardButton(type1 arg1, type2 arg2,
ItemClickEventHandler eventHandler, type3 arg3, type4 arg4)
ItemClickEventHandler имеет обычные (отправитель, e) аргументы. Однако мы никогда не заканчивали тем, что использовали аргументы (sender, e), поэтому у нас есть несколько таких вызовов:
myButton = CreateStandardButton(myArg1, myArg2,
(sender, e) => MyButtonClick(), myArg3, myArg4);
и, поскольку этот проект был обновлен до .NET 3.5 примерно на 15%, многие вызовы, подобные этому:
myButton = CreateStandardButton(myArg1, myArg2,
delegate { MyButtonClick(); }, myArg3, myArg4);
Мы часто называем этот метод, поэтому действительно раздражает необходимость снова и снова добавлять лямбду для неиспользуемых аргументов. Поэтому я хочу изменить все использования на эту перегрузку:
public ButtonObject CreateStandardButton(type1 arg1, type2 arg2,
Action eventHandler, type3 arg3, type4 arg4)
Что позволяет нам сделать это вместо:
myButton = CreateStandardButton(myArg1, myArg2,
MyButtonClick, myArg3, myArg4);
Проблема заключается в том, что для использования старого синтаксиса делегата потребуется преобразование в (Action)
, поскольку они неоднозначны для компилятора. Итак, чтобы снять раздражение, я хочу найти и заменить, предположительно, регулярными выражениями.
Какое регулярное выражение для этого?