Всем привет! Есть вопрос по реализации async/await в .NET.
Приведу два примера:
1.
private Config _config;
private Config _defaultConfig => Config.GetDefaultConfig();
public async Task<Config> GetConfigAsync()
{
if (_config == null)
{
return _defaultConfig;
}
return await GetWebConfig("http://test.com");
}
Если выполнится условие в блоке if, то из метода GetConfigAsync будет возвращён объект типа Task.
Правильно ли оставлять в таком виде или лучше будет написать return await Task.FromResult(_defaultConfig)?
2.
public async Task<string> GetRequestResult()
{
var response = await GetResponseFromUrl(url);
if (response.isSuccess)
{
return "Success!";
}
else
{
return "Error!";
}
}
В данном примере мне нужно просто проверить статус ответа от сервера. Если я помещу всё это в async Task, то при вызове метода GetRequestResult придётся писать await. Есть ли способ избежать этого? Нужно ли return оборачивать в Task.FromResult("Success")? Какие best-practice лучше применить? Уместен ли вариант с .Result в данном случае?