@fiskoner

Внедренный оператор не может быть объявлением или оператором с идентификатором?

private void getWmiDecodeFromNhtsaApi()
        {
            string url = "https://vpic.nhtsa.dot.gov/api/vehicles/DecodeWMI/" + wmi + "?format=json";
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri(url);
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            try
            {
                var tmp = client.GetAsync(url).Result;
                if (tmp.IsSuccessStatusCode)
                    var result = tmp.Content.ReadAsStringAsync();
            }
            catch (Exception err)
            {
                // error handling
            }
        }
Имеется запрос на api, код:

visual studio ругается на строку
var result = tmp.Content.ReadAsStringAsync();

"внедренный оператор не может быть объявлением или оператором с идентификатором"

Код работы с api взят с официальной документации - https://vpic.nhtsa.dot.gov/api/Home/Index/Language...
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
Официальная документация тоже содержит много плохого кода, даже от microsoft.
Определите ваш метод в async и избавьтесь от плохого кода с ".Result;"
Ответ написан
@breathtaking
Не вникая в суть вашего кода, конкретно эта ошибка в следующем:
У вас оператор, внедренный в if, является объявлением переменной (и ее инициализацией). Ругается, потому что операция бессмысленная. После выхода из блока if результат потеряется. Поэтому сначала объявляем переменную, а потом уже внутри if инициализируем:
Task<string> result;

if (tmp.IsSuccessStatusCode)
    result = tmp.Content.ReadAsStringAsync();

Либо используем результат внутри блока if:
if (tmp.IsSuccessStatusCode) {
    var result = tmp.Content.ReadAsStringAsync();
    Console.WriteLine(result.Result);
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Кошелёк.ру Санкт-Петербург
До 350 000 ₽
Драйв Москва
от 190 000 до 240 000 ₽
MSP360 Санкт-Петербург
от 90 000 до 170 000 ₽