Один не такой большой преимущество для старого синтаксиса delegate
заключается в том, что вам не нужно указывать параметры, если вы не используете его в теле метода. От MSDN
В одном случае анонимный метод обеспечивает функциональность
не найден в лямбда-выражениях. Анонимные методы позволяют вам опустить
список параметров. Это означает, что анонимный метод может быть
преобразован в делегатов с различными подписями. Это не
возможно с лямбда-выражениями.
Например, вы можете сделать:
Action<int> a = delegate { }; //takes 1 argument, but not specified on the RHS
Пока это не удается:
Action<int> a = => { }; //omitted parameter, doesnt compile.
Этот метод наиболее удобен при написании обработчиков событий, например:
button.onClicked += delegate { Console.WriteLine("clicked"); };
Это не сильное преимущество. Лучше всегда использовать новый синтаксис imho.