@Nikita07

Что значит данная запись на C#?

Всем привет, помогите разобраться со следующим кодом:

private static string GetUserAgent(this HttpRequestMessage request)
            => request.Headers?.UserAgent?.ToString() ?? string.Empty;


Что в данном случаи означают знаки вопроса?
Что данное выражение может быть null или что-то другое?
  • Вопрос задан
  • 239 просмотров
Решения вопроса 1
@Voland69
Такая Headers?.UserAgent запись - это Null Propagation - если Headers == null выражение вернет null (без ? было бы NRE)
value ?? string.Empty это сравнение значения с null - если value != null, то вернет value, в противном случае вернет string.Empty
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
В дополнение вышесказанного

///
// Метод возвращает UserAgent из запроса или пустую строку. Производится проверка на пустое значение Headers и UserAgent
///
private static string GetUserAgent(this HttpRequestMessage request)
            => request.Headers?.UserAgent?.ToString() ?? string.Empty;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы