Вы можете удалить ключевые слова async
и await
в случае одной строки внутри функции. Я предполагаю, что SendAsync
возвращает Task
объект уже, поэтому не нужно ждать, просто верните, что Task
:
public Task SendPasswordEmail(string emailId, string link)
{
return _emailSender
.To(emailId)
.Subject(EmailUtilsConstants.PasswordEmailSubject)
.Body(EmailUtilsConstants.PasswordEmailText + link)
.SendAsync();
}
Async/Await
привнесет дополнительные издержки в ваш метод. Компилятор создаст «конечный автомат» для всех асин c методов, который не нужен в случае одной строки кода внутри тела метода.
Обновление: (спасибо за комментарий к @JohnathanBarclay)
Другое отличие в случае исключения async/await
m обработки исключений немного изменится. Конечный автомат для методов async
захватит исключения из вашего кода и поместит их в возвращаемое задание. Но это не будет иметь место в случае исключения async/await
.
Подробнее https://blog.stephencleary.com/2016/12/eliding-async-await.html.