Что предпочтительнее: delegate {} or() => {}
Мне было интересно сегодня, есть ли какие-либо причины предпочесть использовать делегат {} вместо() = > {}, в тех случаях, когда вам нужна пустая функция.
Знаете ли вы какую-либо причину, чтобы предпочесть один за другим?
Ответы
Ответ 1
Это не одно и то же.
Так как delegate {}
не предоставляет список аргументов, он может быть преобразован в делегат, который возвращает void
, и принимает любое количество аргументы (кроме параметров ref
и out
).
Это не то же самое, что () => {}
, которое явно объявлено как не принимающее аргументов.
Ответ 2
Я считаю, что они скомпилированы в один и тот же код (если лямбда компилируется в делегат, а не в выражение, которое оно использовало бы там, где будет использоваться делегат).
Я предпочитаю лямбда, главным образом потому, что меньше символов, и я не думаю, что это менее читаемо.