Что предпочтительнее: delegate {} or() => {}

Мне было интересно сегодня, есть ли какие-либо причины предпочесть использовать делегат {} вместо() = > {}, в тех случаях, когда вам нужна пустая функция.

Знаете ли вы какую-либо причину, чтобы предпочесть один за другим?

Ответ 1

Это не одно и то же.

Так как delegate {} не предоставляет список аргументов, он может быть преобразован в делегат, который возвращает void, и принимает любое количество аргументы (кроме параметров ref и out).

Это не то же самое, что () => {}, которое явно объявлено как не принимающее аргументов.

Ответ 2

Я считаю, что они скомпилированы в один и тот же код (если лямбда компилируется в делегат, а не в выражение, которое оно использовало бы там, где будет использоваться делегат).

Я предпочитаю лямбда, главным образом потому, что меньше символов, и я не думаю, что это менее читаемо.